Конвертировать дату RFC 1123 в метку времени в PHP
Вопрос
Какой самый простой или самый элегантный способ преобразовать дату RFC 1123 (из заголовка HTTP-Expiration) в метку времени UNIX?
Пример: воскресенье, 14 августа 2005 г., 16:13:03 GMT
Мне действительно нужно «подправлять» все?
Решение
strtotime
может читать этот формат.
Другие советы
Скучный метод:
$datestring = 'Sun, 14 Aug 2005 16:13:03 GMT';
$months = array('Jan' => 1,
'Feb' => 2,
'Mar' => 3,
'Apr' => 4,
'May' => 5,
'Jun' => 6,
'Jul' => 7,
'Aug' => 8,
'Sep' => 9,
'Oct' => 10,
'Nov' => 11,
'Dec' => 12,
);
$date = explode(' ', $datestring);
// Validity check
if(count($date) != 6) { return; }
$time = explode(':', $date[4]);
// Validity check
if(count($time) != 3) { return; }
if(! isset($months[$date[2]])) { return; }
// Convert to time
$timestamp= gmmktime($time[0], $time[1], $time[2], $months[$date[2]], $date[1], $date[3]);
Не связан с StackOverflow