大佬教程收集整理的这篇文章主要介绍了php-在MySQL非null字段上创建DateTime对象,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个DATETIME NOT NULL数据类型的MySQL表(未指定默认值).
对于MysqL默认值,如果我不指定数据,则该值将变为0000-00-00 00:00:00.
然后,我从数据库中获取值,该值是0000-00-00 00:00:00.然后,我尝试使用检索到的数据创建DateTime对象.
$date = new DateTime('0000-00-00 00:00:00');
$formatted_date = $date->format('Y-m-d');
echo $formatted_date; // which display -0001-11-30, an obvIoUs invalid date
检查该值是否不是有效日期的最佳方法是什么?
解决方法:
SELECT NULLIF('0000-00-00 00:00:01', '0000-00-00 00:00:00');
// Shows 0000-00-00 00:00:01
SELECT NULLIF('0000-00-00 00:00:00', '0000-00-00 00:00:00');
// Shows NULL
但是,我建议应用@deceze所说的内容:
数据应以适当的形式存储.因此,我建议更改您的表列以接受NULL.
UPDv1:
如果您不需要在PHP中使用日期进行计算,而只需要输出它,我也建议您使用DATE_FORMAT()
,因为它在此问题上更加可靠:
SELECT DATE_FORMAT('0000-00-00 00:00:00', '%d.%m.%Y %H:%i:%s');
// Shows '00.00.0000 00:00:00'
以上是大佬教程为你收集整理的php-在MySQL非null字段上创建DateTime对象全部内容,希望文章能够帮你解决php-在MySQL非null字段上创建DateTime对象所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。