2010-07-27 159 views
0

我如何轉換時間字符串是這樣的:轉換時間字符串到UNIX時間戳

30/7/2010

到UNIX時間戳?

我試圖strtotime()但我得到一個空字符串:(

+1

'strtotime'不工作,因爲(來自doc)「該函數預期會給出一個包含美國英語日期格式的字符串」 – 2010-07-27 22:05:53

回答

10

PHP> = 5.3:

$var = DateTime::createFromFormat('j/n/Y','30/7/2010')->getTimestamp(); 
+0

酷,這工作,謝謝你 – Alex 2010-07-27 22:28:55

2

您可能需要使用http://us3.php.net/manual/en/function.strptime.phpstrptime),因爲你的日期是在比PHP可能期待不同的格式。

+0

+1。如果您的PHP> = 5.1和日期格式不適用於strtotime,則strptime絕對是一種選擇。 – 2010-07-27 22:51:37

0

你也可以其轉換成的strtotime()可以接受的格式,像Y/M/d:

$tmp = explode($date_str); 
$converted = implode("/", $tmp[2], $tmp[1], $tmp[0]); 
$timestamp = strtotime($converted); 
+3

如果你打算這樣做,你可能只是'mktime(0,0,0,$ tmp [1],$ tmp [0],$ tmp [2]);' – 2010-07-27 22:06:54

5

您使用英國的日期格式

快速和髒方法:

$dateValues = explode('/','30/7/2010'); 
$date = mktime(0,0,0,$dateValues[1],$dateValues[0],$dateValues[2]); 
+1

這就是我想出來的也有 - 是否真的沒有函數使用日期格式字符串和文本日期字符串並返回時間戳?這似乎是一個奇怪的差距在PHP的日期界面 – 2010-07-27 22:09:30

0

的PHP 5.3答案大

DateTime::createFromFormat('j/n/Y','30/7/2010')->getTimestamp(); 

這裏是一個< 5.3.0溶液

$timestamp = getUKTimestamp('30/7/2010'); 

function getUKTimestamp($sDate) { 
    list($day, $month, $year) = explode('/', $sDate); 
    return strtotime("$month/$day/$year"); 
}