我习惯于使用 time()
将数据库中的日期保存为 INT(11)。
考虑到 time() 的限制,有没有更好的方法来保存它?
我不想使用数据库自己的 DATE 类型(以及所有数据库自己的日期函数)。
谢谢
最佳答案
好的,根据评论,我了解到使用 time() 的问题在于我们希望表示 01/01/1970 到 whenever/2038 范围之外的日期。
在这种情况下,我认为最好将数据库的日期格式设置为 YmdHis
,存储在 BIGINT 中(如果不需要时间,则只存储在 INT 中的 Ymd
).您可以使用 date_create("now")->format($fmt)
而不是 time()
,$fmt 是 'Ymd' 表示仅日期或 'YmdHis' 用于日期+时间
这给出了 922,337,203AD 中某处的最晚日期和最早的 -922,337,203BC 时间,或 214,748AD 到 -214,748BC 的 INT,没有时间。
关于php - 有比 time() 更好的方法在数据库中保存日期吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5824964/