date_parse_from_format – временная метка unix

У меня есть вопрос относительно метода date_parse_from_format() :

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

Возвращает ассоциативный массив с подробной информацией о данной дате.

Это вернет массив с информацией о дате. Но есть ли способ конвертировать его в временную метку unix?

Johan,

Вот пример того, как реализовать mktime в вашем сценарии:

 $parsed = date_parse_from_format("Y d MH: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 из $ parsed

 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) 

Вы можете получить отметку времени UNIX, пытаясь использовать mktime () для даты.

Например:

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

Вы получите такой вывод, как 1349353200

И если вы хотите, чтобы AM / PM просто добавили 12 часов, если PM.

Например:

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

и вы также можете использовать strtotime ():

strtotime () – Разбор любого текстового описания даты и времени в текстовой таблице Unix

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

Вы получите такой вывод, как 1351985040

mktime () должно удовлетворять вашим потребностям совершенно 🙂 Проверьте http://php.net/manual/en/function.mktime.php, чтобы узнать, как вы можете его использовать!