MySQL PHP日期转换出现“1970-01-01”的解决办法


<!–

–>

MySQL PHP日期转换出现“1970-01-01”的解决办法

在进行MySQL和PHP日期转换时,有时候会遇到日期显示为‘1970-01-01’的情况,本文将讲解这种情况的出现原因和如何解决该问题。

阅读更多:

问题原因

MySQL和PHP对日期的存储和表示方式有所不同。MySQL中日期以YYYY-MM-DD的格式保存,而PHP以Unix时间戳的形式存储。Unix时间戳是从1970年1月1日00:00:00到指定时间的秒数,也就是说,如果日期在1970年1月1日之前,转换成Unix时间戳的值就为负数。

(adsbygoogle = window.adsbygoogle || []).push({});

如果在从MySQL中获取日期时,没有正确的转换成Unix时间戳,则会出现‘1970-01-01’的日期。代码示例如下:

//MySQL中日期为‘2021-06-01’
date = date('Y-m-d', strtotime(row['date']));
//输出为‘1970-01-01’
echo $date;

解决方案

为了解决这个问题,我们需要将MySQL日期转换成Unix时间戳。在PHP中,可以使用strtotime()函数将MySQL中的日期转换为Unix时间戳,然后再将Unix时间戳转换为需要的日期格式。代码示例如下:

//MySQL中日期为‘2021-06-01’
date = date('Y-m-d', strtotime(row['date']));
//输出为‘2021-06-01’
echo $date;

在上面的代码中,我们使用了strtotime()函数将MySQL中的日期转换为Unix时间戳,然后再将Unix时间戳转换为需要的日期格式。这样我们就可以正确地显示MySQL中的日期了。

除此之外,还有其他的方法可以解决这个问题,比如在MySQL中使用DATE_FORMAT()函数将日期转换为指定的格式。这里我们不再赘述。

总结

在进行MySQL和PHP日期转换时,我们需要注意MySQL和PHP对日期的存储和表示方式的不同。在从MySQL中获取日期时,我们需要将日期正确的转换成Unix时间戳,然后再将Unix时间戳转换为需要的日期格式。只有这样,才能正确地显示MySQL中的日期。