RFC 1123の日付(HTTP-Expiration-headerから)をUNIXタイムスタンプに変換する最も簡単または最も洗練された方法は何ですか?
例:2005年8月14日日曜日16:13:03 GMT
私は本当にすべてを「substr」する必要がありますか?
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]);