我正在使用剑道日期选择器。我希望用户选择一个日期。我会把它保存在数据库中。
问题来了。
当印度用户选择“1/1/2011”时。我从 kendo datepicker 得到的值是
LOG: investmentStartDate: Sat Jan 1 00:00:00 UTC+0530 2011
我把它保存到数据库后,日期变成了“2010-12-31”。我认为发生这种情况是因为时区,我的应用程序服务器和数据库服务器都是东部时间。
我的用户可以来自任何地方,日本、中国、印度或伦敦。有没有一种方法可以将这个时间转换为实际日期,而不管他们居住在哪个时区。
最佳答案
请提供有关您的服务器端的更多信息。前几天我在时区和剑道方面有很多经验和麻烦。我设法克服了它,所以也许我可以提供帮助。
我遵循且大多数人喜欢的一般最佳做法是将您的服务器数据保存为 UTC 时区格式,然后在客户端添加时区差异。
对我来说,它的工作方式是我通过 REST 服务从我的 UTC 时间服务器中提取日期时间。我有一个事件在数据源从客户端的服务器读取时间后触发,事件逻辑找出浏览器时区并将差异添加到 UTC 时间。然后用户可以选择在他的时区中显示的时间。当他单击保存按钮时,在将更改后的数据发送到服务器之前,它再次转换为 UTC 时区并以该格式发送到服务器。
关于javascript,无论您在哪个时区,如何获得相同的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14740064/