将
strtotime()
在PHP中工作得很好,如果你能提供一个它能理解和转换的日期格式,但例如你给它一个英国日期,它不能给出正确的unix时间戳。
我最接近的是date_parse_from_format()
和mktime()
的混合物
// Example usage of the function I'm after
//Like the date() function but in reverse
$timestamp = strtotimeformat("03/05/2011 16:33:00", "d/m/Y H:i:s");
如果是PHP 5.3:
$date = DateTime::createFromFormat('d/m/Y H:i:s', '03/05/2011 16:33:00');
echo $date->getTimestamp();
我想您正在寻找strptime。您可以使用它来解析日期,如果需要UNIX时间戳,可以使用mktime。
function strotimeformat($date, $format) {
$d = strptime($date, $format);
return mktime($d['tm_hour'], $d['tm_min'], $d['tm_sec'],
$d['tm_mon'], $d['tm_mday'], $d['tm_year']);
}
strtotime
在使用/
作为分隔符时假定它是美国日期/时间。要使它认为它是欧洲日期/时间,请使用-
或.
作为日期分隔符。您可以使用简单的str_replace()
/
s更改为-
s或.
s。