我知道这可能是一个简单的问题,但我不确定如何解决它。
当我在本地机器上运行这段代码时
if (someDateTime < DateTime.Now)
// do something
'DateTime.Now'给我时区的当前日期时间,但是当我在Azure中运行'DateTime.Now'给了我不同的时间
恩。本地机器上午12:00说,Azure说上午8:13
我需要做些什么来比较时间'someDAteTime'与我网站上的用户的时间(他/她当前的DateTime.Now)?
在Utc()
实例上应该有一个DateTime
方法,每个编程语言都有类似的东西,因为可能是Atari。
如果这是.NET(完整/核心),只需使用DateTime.UtcNow
。更多关于这里 -
What is the difference between DateTime.UtcNow and DateTime.Now.ToUniversalTime()
这里的关键在于您始终将UTC时间与UTC时间进行比较,而忽略区域移位。此外,所有Azure服务report time in UTC“开箱即用”。
我假设你在客户端使用javascript。
如果您想比较日期,您应该始终使用ISO日期(https://en.wikipedia.org/wiki/ISO_8601)with时区。
您可以使用此库以使用不同的时区:https://momentjs.com/timezone/
和这个库来比较日期:https://momentjs.com/
请注意用户可以在客户端修改日期,因此如果您需要验证关键功能的日期,则应在服务器端进行此验证。