我有一个关于unix时间戳和mysql日期的基本问题。 我正在尝试建立一个小型网站,用户可以注册并填写他们的生日。
问题是unix从1970年1月1日开始。现在,如果我计算用户的年龄,表单日期如日期('mdY',$ unix_from_db)等等,它将失败,用户年龄超过40年,对吗? / p>
那么这样做的方法是什么呢?对不起,对于像这样的基本问题,但我对php和mysql缺乏经验。
//编辑: 谢谢你们。我很困惑,因为,日期('mdy',mktime(0,0,0,1,1,1890))和日期('mdy', - 2000)返回01.01.70 - 下次我将学习手册更仔细。我能够修复我的网站,再次感谢。太糟糕了我只接受一个答案,他们都同样好。
答案 0 :(得分:5)
1970年以前的Unix时间戳是负整数,计算直到1970年1月1日的秒数。
例如,2/13/1943
为-848343600
答案 1 :(得分:4)
那又怎样?算术与负数一起使用。当它们开始时,只要它被一致地使用就没有区别。
负数也是人!不要歧视!这伤害了他们的感情。
答案 2 :(得分:3)
在纪元之前的日期编号 仍在增加,从而变得更少 随着时间的推移,这是消极的。
http://en.wikipedia.org/wiki/Unix_time
您应该对前期日期没有任何问题:
<?php
echo date("m-d-Y", mktime(0, 0, 0, 1, 1, 1970));
echo date("m-d-Y", mktime(0, 0, 0, 1, 1, 1969));
echo date("m-d-Y", mktime(0, 0, 0, 1, 1, 1943));
?>
输出
01-01-1970
01-01-1969
01-01-1943
答案 3 :(得分:2)
将日期作为日期或日期时间存储在mysql中。
输出你喜欢的日期:
date('<format>', strtotime($date_from_db));
strtotime将在1970年之前的日期返回一些负整数。日期将处理这一点。