日期时间格式空值在PHP中返回默认时间

时间:2017-12-07 07:42:41

标签: php mysql codeigniter datetime

我目前正在开发codeigniter project.i,数据库名称为"student_detail",表值有这样的

  payment_date
1 NULL
2 NULL
3 2017-12-06 08:47:40

payment_date column is a DATETIME format

。当我打印此列时,它会像这样返回

payment_date
1 1970-01-01 00:00:00
2 1970-01-01 00:00:00
3 2017-12-06 08:47:40

但我需要返回NULL而不是默认时间格式。

5 个答案:

答案 0 :(得分:1)

更新数据库中的付款日期字段。 Setit默认为null。

ALTER TABLE `table_name` CHANGE `payment_date` `payment_date` DATETIME NULL DEFAULT NULL;

答案 1 :(得分:0)

这段代码只是为了给你一个想法。如果您发布有问题的PHP代码,我可以帮助您。

在获取日期变量并使用date("Y-m-d", strtotime($payment_date))函数打印之前,您必须检查它是否具有NULL值。

if($payment_date != NULL)
{
    date("Y-m-d H:i:s", strtotime($payment_date));
}

答案 2 :(得分:0)

如果没有PHP代码,我们无法帮助。

MySQL按预期工作:http://sqlfiddle.com/#!9/7e591f/1

EDITED: 您的框架很可能将未定义的日期时间NULL转换为有效的日期时间值1970-01-01 00:00:00,这是PHP时间的开始 - 它等于0(零)秒。

您可以在Codeigniter帮助中找到更多信息:https://www.codeigniter.com/user_guide/helpers/date_helper.html

答案 3 :(得分:0)

修改表payment_date并将列payment_date数据类型设置为NULL DEFAULT NULL。

alter table payment_date modify column payment_date datetime null default null;

答案 4 :(得分:0)

SELECT 
id, IF(payment_date='1970-01-01 00:00:00', null, payment_date) as payment_date 
FROM `student_detail`

enter image description here