2011-11-25 211 views
0

可能重複:
How to convert date to timestamp in PHP?PHP日期時間戳

我想傳遞一些date to timestamp,日期formart是%day %month %time。像25 nov 07:44一樣,我嘗試了下面的一些方法,但是這兩個日期是不同的。需要幫助,謝謝。

<?php 
$date = '25 nov 07:44'; 
$time = explode(" ",$date); 
$minute = explode(":",$time[2]); 
$timestamp = mktime(''.$minute[0].' '.$minute[1].' 00 '.$time[1].' '.$time[0].' 2011')."<br />";// mktime(%hour, %minute, %second, %month, %day, %year); 
echo $timestamp; //1322202671 
echo date("Y-m-j H:i:s", $timestamp); //2011-11-25 07:31:11 
?> 
+3

你試過['的strtotime()'](http://php.net/manual/en/function.strtotime.php )? –

回答

1

在最新版本的php(5.3+)中,您可以使用DateTime::createFromFormat()

嘗試像

$format = 'd M H:i'; 
$date = DateTime::createFromFormat($format, $timestamp); 
echo $date->format('Y-m-j H:i:s'); 

就個人而言,我覺得這個類爲基礎的方法乾淨了一點。

PHP文件

DateTime::createFromFormat

date() for info on format strings

+0

新的方式是更多的easiler呼籲使用,謝謝。 –

5

的幾個問題:

  • 你餵養mktime一個字符串,而不是一個逗號分隔的列表
  • $time[1]是一個字符串和mktime需要數月

您可能想試試strtotime或者添加一個翻譯表以從您的月份字符串開始到一個數字。

+0

那麼對我來說什麼是正確的'strtotime' formart? '「25-11-2011 07:44」'?所以我應該爲'nov'創建一個str_replace到'11'?謝謝。 –

+1

@fish man查看手冊瞭解['strtotime'](http://php.net/manual/en/function.strtotime.php)的信息 – Anonymous

+0

感謝'strtotime','+ 1',但是'DateTime: :createFromFormat($ format,$ timestamp);''對我來說是一種新的方式,一個php初學者,也不太清楚'php5.3 +中的新方法' –