phpMyAdmin中的日期字段

时间:2014-02-28 10:18:08

标签: php sql date phpmyadmin

我正在使用Mysql数据库来存储数据。

我正面临有关date字段的一些问题。日期以YYYY-MM-DD格式存储在数据库中。当我从数据库中检索日期时,我使用以下代码。

echo(date("d.m.Y", strtotime($row_getsavedetails['Purchase_WarrantyStartDate'])));

如果数据库中存在日期,则此工作正常。

如果数据库'01 / 01/1970'中没有日期,则会显示在前端。

我无法理解,这个日期将如何出现。

请帮助我。

5 个答案:

答案 0 :(得分:5)

UNIX timestamps表示为相对于1970年1月1日UTC的秒数。 strtotime将以人类可读格式编写的日期转换为UNIX时间戳。如果没有有效日期,则返回falsedate将其第二个参数解释为整数,作为UNIX时间戳。因此,它会将false投射到0。从1970年1月1日起,0为零秒。因此,您将获得01.01.1970。

答案 1 :(得分:1)

为什么不在echoing?之前检查

if(!empty($row_getsavedetails['Purchase_WarrantyStartDate']))
{
 echo(date("d.m.Y", strtotime($row_getsavedetails['Purchase_WarrantyStartDate'])));
}
else { echo "Date is not available"; }

您获得01/01/1970这一事实,请参阅deceze's answer.

答案 2 :(得分:0)

01/01/1970是默认的unix时间戳,如果保留为NULL。在这种情况下,最好添加一个检查来处理NULL值。

答案 3 :(得分:0)

如果您尝试转换的值为null,则会返回返回的默认日期。 您必须先检查日期是否为空。

echo empty($row_getsavedetails['Purchase_WarrantyStartDate']) ? "Date is null" : date("d.m.Y", strtotime($row_getsavedetails['Purchase_WarrantyStartDate'])); 

答案 4 :(得分:0)

首先,您必须知道日期已经表示(几乎在计算机的任何位置),例如1970年1月1日的毫秒数。 因此,如果您获得该日期,则表示您在创建日期时在数据库中插入的值(默认情况下)为0。