strtotime()
效果很好,如果你可以提供它理解并可以转换的日期格式,但是例如你给它一个英国日期它无法给出正确的unix时间戳。
是否有任何官方或非官方的PHP函数可以接受格式变量,该函数告诉函数以何种格式传递日期和时间?
我最接近这样做的是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");
答案 0 :(得分:22)
如果你有PHP 5.3:
$date = DateTime::createFromFormat('d/m/Y H:i:s', '03/05/2011 16:33:00');
echo $date->getTimestamp();
答案 1 :(得分:2)
我想你正在寻找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']);
}
这适用于PHP 5.1及更高版本。
答案 2 :(得分:0)
strtotime
假设使用/
作为分隔符是美国的日期/时间。要让它认为它是欧元日期/时间,请使用-
或.
作为日期分隔符。您可以使用简单/
-
更改为.
或str_replace()
s