接受格式的PHP strtotime()函数?

时间:2011-05-03 15:34:54

标签: php datetime strtotime mktime

PHP中的

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");

3 个答案:

答案 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