日期时间格式空值返回 PHP 中的默认时间
Posted
技术标签:
【中文标题】日期时间格式空值返回 PHP 中的默认时间【英文标题】:date time format null values return default time in PHP 【发布时间】:2018-05-21 06:15:01 【问题描述】:我目前正在处理 codeigniter 项目。我有一个数据库名称是 "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 而不是默认时间格式。
【问题讨论】:
你的php代码在哪里? 我只是用 print_r() 方法打印这张表 显示您的php
代码
【参考方案1】:
这段代码只是为了给你一个想法。如果您发布有问题的 PHP 代码,我可以准确地帮助您。
在获取日期变量并使用date("Y-m-d", strtotime($payment_date))
函数打印之前,您必须检查它是否具有NULL
值。
if($payment_date != NULL)
date("Y-m-d H:i:s", strtotime($payment_date));
【讨论】:
为什么全部大写?你生气了吗? 没有@Ghost,只是为了引起注意。【参考方案2】:没有 PHP 代码,我们无能为力。
mysql 按预期工作:http://sqlfiddle.com/#!9/7e591f/1
编辑:
您的框架很可能会将未定义的日期时间 NULL
转换为有效的日期时间值 1970-01-01 00:00:00
,这是 PHP 时间的开始 - 它等于 0(零)秒。
您可以在 Codeigniter 帮助中找到更多信息:https://www.codeigniter.com/user_guide/helpers/date_helper.html
【讨论】:
【参考方案3】:更新数据库中的付款日期字段。将其默认设置为 null。
ALTER TABLE `table_name` CHANGE `payment_date` `payment_date` DATETIME NULL DEFAULT NULL;
【讨论】:
【参考方案4】:修改您的表 payment_date 并将列 payment_date 数据类型设置为 NULL DEFAULT NULL。
alter table payment_date modify column payment_date datetime null default null;
【讨论】:
【参考方案5】:SELECT
id, IF(payment_date='1970-01-01 00:00:00', null, payment_date) as payment_date
FROM `student_detail`
【讨论】:
以上是关于日期时间格式空值返回 PHP 中的默认时间的主要内容,如果未能解决你的问题,请参考以下文章