PHP strtotime()函数,接受格式



strtotime()在PHP中工作得很好,如果你能提供一个它能理解和转换的日期格式,但例如你给它一个英国日期,它不能给出正确的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");

如果是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。

相关内容

  • 没有找到相关文章

最新更新