2012-11-29 97 views
3

我有一個關於該date_parse_from_format()方法的問題:date_parse_from_format到UNIX時間戳

$parsed = date_parse_from_format("Y d M H:i T", '2012 28 Nov 21:00 CET'); 

返回關聯數組有關給定日期的詳細信息。

這將返回一個包含某些日期信息的數組。但有什麼辦法將它轉換爲unix時間戳嗎?

回答

6

約翰,

繼承人如何實現mktime到您的場景中一個確切的例子:

$parsed = date_parse_from_format("Y d M H:i T", '2012 28 Nov 21:00 CET'); 
$new = mktime(
     $parsed['hour'], 
     $parsed['minute'], 
     $parsed['second'], 
     $parsed['month'], 
     $parsed['day'], 
     $parsed['year'] 
); 
echo $new; //returns: 1354136400 

對於未來的參考,你可以在一個陣列上使用var_dump()print_r(),看看如何訪問嵌套值。

的var_dump $解析

array (size=16) 
    'year' => int 2012 
    'month' => int 11 
    'day' => int 28 
    'hour' => int 21 
    'minute' => int 0 
    'second' => int 0 
    'fraction' => boolean false 
    'warning_count' => int 0 
    'warnings' => 
    array (size=0) 
     empty 
    'error_count' => int 0 
    'errors' => 
    array (size=0) 
     empty 
    'is_localtime' => boolean true 
    'zone_type' => int 2 
    'zone' => int -60 
    'is_dst' => boolean false 
    'tz_abbr' => string 'CET' (length=3) 
+0

感謝提供示例 – Johan

+1

@Johan絕對!我從自己的例子中學習...... :-P – phpisuber01

4

您可以通過嘗試在日期中使用mktime()來獲得UNIX時間戳。

例如:

echo mktime(12, 20, 0, 10, 4, 2012); 

你會得到這樣的1349353200

輸出如果你想AM/PM只需添加12〜下午是否小時。

例如:

mktime($isAM ? $hrs : ($hrs + 12), $mins, $secs, $m, $d, $y); 

,你也可以使用的strtotime():

strtotime() - 解析任何英文文本的日期時間描述爲Unix時間戳

echo strtotime("2012-11-03 11:24:00PM"); 

你會得到那樣的輸出1351985040