在未来的日期,strtotime在php中工作不正常?

时间:2014-08-23 08:17:31

标签: php date date-conversion

当我以Y-m-d格式从d-m-Y转换日期时。我正面临一些问题。

例子19/08/1989将转换为1989/08/19(这是正确的),

19/08/2059将转换为1970/01/01(它不正确)

$re_date = date('Y-m-d', strtotime($_POST['re_date']));

请帮帮我。提前谢谢。

4 个答案:

答案 0 :(得分:3)

允许的最长日期是星期二,2038年1月19日03:14:07 UTC 32位系统

来自strotime docs

  

注意:

     

时间戳的有效范围通常来自1901年12月13日星期五   20:45:54 UTC to Tue,20 Jan Jan 03:14:07 UTC。

如果您希望它适用于32位系统,请尝试使用DateTime

$date = new DateTime($_POST['re_date']);

echo $date->format('Y-m-d');

答案 1 :(得分:2)

更好的技巧

$str=explode('/',$_POST['re_date']);

$newdate = $str[2].'/'.$str[1].'/'.$str[0];

答案 2 :(得分:0)

$ re_date = date(' Y / m / d',strtotime($ _ POST [' re_date']);

答案 3 :(得分:0)

$date = $_POST['re_date'];
$date = str_replace("/", "-", $date);
$re_date = date('Y-m-d', strtotime($date));