我知道这已经有一千多次不同的问题,但我还没有找到大多数人倾向于认同的答案。似乎每个人都有自己的(通常完全不同的)如何在MySQL中存储日期的想法。用于计划和计时卡系统的最佳php/mysql日期格式?
对于计划&计时卡系统,什么是最好的方式来存储日期&次?日期&时间范围将必须计算,诸如“总工作时间”在一天/周/等等的东西将不得不被计算等。
请记住,人们可能会从不同的时区计时,所以时间必须恰当地抵消以在当地时间显示。我不能只输出“一刀切”的时间戳。
那么,说了这么多,大家对此有何看法呢?
我知道这已经有一千多次不同的问题,但我还没有找到大多数人倾向于认同的答案。似乎每个人都有自己的(通常完全不同的)如何在MySQL中存储日期的想法。用于计划和计时卡系统的最佳php/mysql日期格式?
对于计划&计时卡系统,什么是最好的方式来存储日期&次?日期&时间范围将必须计算,诸如“总工作时间”在一天/周/等等的东西将不得不被计算等。
请记住,人们可能会从不同的时区计时,所以时间必须恰当地抵消以在当地时间显示。我不能只输出“一刀切”的时间戳。
那么,说了这么多,大家对此有何看法呢?
使用时间戳记/日期时间字段并以UTC时间存储该值。转换为本地时区输出给用户。
这样,您可以很容易地在时钟输入/输出时间内进行数学计算,并且在尝试在时区之间进行转换时不会有太大的混乱。
当用户输入一个值时,用户必须清楚他/她输入的值。例如,如果我住在班加罗尔,并在东部标准时间输入我的工作时间,只要显然我输入的时间是在东部时间,那就是正确的。创建用户配置文件,然后指定他们的时区。将其显示在输入栏旁边,以便他们在输入数值时知道。为了舒适,可以轻松地更改时区的时区。 – hakre
我确实有一个计划使用的时区偏移字段,我只是没有开始构建所有的东西,直到我确定要使用什么时间格式。 – Oseer
在数据库中,您始终使用UTC。用户输入自然形式,如当前时区。你只需要知道用户当前的时区是什么。也就是说,你的appplication需要知道如何处理输入。当你在PHP中编写代码时,如果你真的想了解这一点,我可以建议你[Derick Rethans的书:“PHP |架构师的日期和时间编程指南”](http://derickrethans.nl/phparchitects- guide-to-date-and-time-programming.html),我想他在他的网站上也有一些关于这个话题的演讲幻灯片,你可以直接下载。 – hakre