我有一个问题让我的头根据日期(没有时间)存储和检索信息并处理多个时区。处理时区和日期
默认情况下,我的应用程序使用UTC,因此创建/更新时间都是UTC,PHP等函数都使用UTC。
我的问题是这样的:
我允许用户创建一条新闻,新闻项目有一个日期(没有时间,只是日期)。
应用程序使用UTC,我的用户是在悉尼,所以我要做的就是加载窗体时我预填充基础的jS M Y
为澳大利亚/悉尼时区的日期字段,这样它显示为今天他。迄今为止都很好。
当我将记录保存到数据库(进入日期字段)时,我使用他们输入的日期,所以如果他们说2016年3月3日,那么它会在2016-03-03进入。
当它被再次拉出时,它对它们显示正常,但是如果我做了一个报告“今天发布了多少新闻项目?”,在我的报告(cron作业)中它可能正在寻找不同的日期,因为如果这个人在清晨进入,那么悉尼2016年3月3日仍然是UTC的2016年3月2日,因此今天会有0。
它出现的解决方案是将日期转换为UTC时的日期,但它将如何工作?..因为它只是一个没有时间的日期。
2016年3月2日00:00:00 UTC将是2016年3月2日10:00:00悉尼
所以..我不知道如何解决这个他们无需同时输入一个时间,这似乎多余的。
请小心绝对。任何时候你发现自己说*总是*,记住总有*规则的例外。在这种情况下,“始终使用UTC”的建议已经在互联网周围传播得如此之多以至于人们盲目追踪并经常遇到陷阱。确实存在UTC以外的时间更适合(或甚至需要)的情况。一个很好的例子是[* scheduling *](http://stackoverflow.com/a/19627330/634824)。你的其他观点是有效的 - 但请注意这一点。谢谢。 –
谢谢马特。在任何情况下,我都遇到过多个时区是一个因素,UTC和时间戳是一个很好的方法,节省了很多痛苦。但是,我完全同意你的意思。 – CoderCreative
@CoderCreative当用户在日历上选择2016年3月3日时,您会如何建议我将其转换为UTC时间戳?如果他们从一个月前选择了一个数据,例如2016年2月14日,那么该数据会变得微不足道。当您包含时间时,它会变得微不足道...... – Wizzard