这应该是一个简单的,但我找不到答案。
我有一个输入字段,用户输入他的birthay日期(DD.MM.YYYY)和strtotime()我将它插入MySQL的整数字段,因为它比datetime更快(我有很多记录)
但显然会有超过1.1.1970的用户,所以时间戳将为零。 在网页上,我想显示用户的年龄。因此,如果他出生于1960年,他将年满51岁。 我知道我可以将MySQL字段更改为DATETIME,但PHP仍然是计算用户年龄的那个,它使用UNIX时间戳。
那么,我应该如何组织它? 谢谢!
答案 0 :(得分:2)
在PHP中处理日期和时间时,应使用DateTime对象。它在解析日期格式时非常灵活,它可以计算两个日期之间的差异,并且没有1970或2038问题。
答案 1 :(得分:0)
你应该使用MySQL DATETIME,在sql查询中计算。保存到数据库时使用php date()函数转换为mysql DATETIME
答案 2 :(得分:0)
您必须使用DateTime对象,您可以在此处看到一个示例代码:
<?php
$date = new DateTime("1960-05-06");
$timestamp = $date->getTimestamp();
echo $timestamp; //-304707600
echo "\n";
$date = new DateTime();
$date->setTimestamp($timestamp);
$birthday = $date->format("Y-m-d");
echo $birthday; //1960-05-06
echo "\n";
echo date("Y") - $date->format("Y"); //55 years old for now (2015)
?>
输出:
-304732800
1960-05-06
55