日期时间格式空值返回 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 中的默认时间的主要内容,如果未能解决你的问题,请参考以下文章

php日期

更改 Rails 4 中的默认日期和时间格式

正确格式化的 MySQL 日期插入语句返回全 0

SQL时间日期函数

更改 csv 文件中的日期时间格式 - 批处理脚本/Powershell [关闭]

蜂巢中的时间戳?