strtotime()大于2038年

时间:2016-01-13 11:52:51

标签: php

我正在尝试使用strtotime进行日期转换为:

date('Y-m-d', strtotime("10-12-2072"));

但它没有正常工作,因为我在php.net上看到Unix时间戳是从1970年开始的,它将在2038年结束然后如何使用我的上述代码? 有什么建议吗?

3 个答案:

答案 0 :(得分:1)

使用DateTime()。它会给你2038年以上。一旦获得日期和时间,您可以将其分开:

$datetime = "2012-10-19 18:19:56";
$Date = explode(" ",$datetime);
$date = $Date[0];
$time = $Date[1];

现在你只能拥有日期。

祝你好运!

答案 1 :(得分:0)

DataTime班级,在DateTime班级中使用date_parse / date_parse_from_format。以下是样本片段。

<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>

参考类似的答案:strtotime() DateTime class analog method

答案 2 :(得分:0)

将字符串解析为DateTime()构造函数,然后相应地格式化。 这里不需要任何额外的解析逻辑。 如果仍然无法正常工作,请检查您是否正在运行64位系统。

$dateTime = new DateTime('10-12-2072');
$datetime->format('Y-m-d');