日期格式转换问题


Date format conversion issue

我有一个问题,我已经处理了很长时间的

请看下面的代码:(我在右边评论了我调试变量时得到的值)

当输入为例如"0000-00-00 00:00:00"时

 $date1 = ($date['confirmed_at']); //value of $date1 is "0000-00-00 00:00:00"
 $date2 = strtotime($date1); //value of $date2 is "1"
 $date3 = date('y-m-d',$date2); //value of $date3 is "70-01-01"

当输入为例如"2011-09-12 08:57:26"时

 $date1 = ($date['confirmed_at']); //value of $date1 is "2011-09-12 08:57:26"
 $date2 = strtotime($date1); //value of $date2 is "1315817846"
 $date3 = date('y-m-d',$date2); //value of $date3 is "11-09-12"

我有点困惑于我一直得到的价值观。。。我所要做的就是取当前为"YYYY-MM-DD HH-MM-SS"的日期,并将其转换为"YYYY-MM-DD"格式

您在第一个示例中看到的结果是,strtotime()返回一个unix时间戳,即自1970年1月1日以来的秒数。它就是不能返回任何对0000-00-00 00:00:00有意义的东西。

对于YYYY-MM-DD格式,使用date('Y-m-d')

使用"日期('Y-m-d',$date2)"作为YYYY-MM-DD格式

strtotime("0000-00-00 00:00:00")的结果可能因PHP版本和操作系统而异,因此使用strtotime作为零日期"0000-00-00 00:00:00"毫无意义。