【发布时间】:2015-10-14 15:27:10
【问题描述】:
我想将出生日期作为 UNIX 时间戳存储在我的数据库中,因为这样可以使数据库变小并加快查询速度。
但是,当使用strtotime将出生日期转换为UNIX时间时,会输出错误的值,即输入的值相差一小时。我知道设置date_default_timezone_set('UTC'); 会以UNIX 时间输出正确的出生日期,但出生日期与某人的居住地无关,对吧?出生日期始终是出生日期,无论某人住在哪里。
所以在例子中
$bday = 20;
$bmonth = 6;
$bYear = 1993;
strtotime($cBday.'-'.$cBmonth.'-'.$cByear) // output: 740527200 == Sat, 19 Jun 1993 22:00:00
PS:数据库字段定义为:bDate int(4) UNSIGNED
【问题讨论】:
-
“但是出生日期与某人的居住地无关,对吧?” -正确的。您还有其他问题吗?
-
当然,出生日期与出生地有关。一个于 2015 年 2 月 1 日凌晨 1 点出生在巴黎的人,如果他的母亲赶上了飞往纽约的飞机,他的出生日期应该是 2015 年 1 月 31 日。
-
出生日期与一个人的出生地有关 - 但 年龄 与一个人当前的居住地有关。看我的回答。