我有一些javascript只需要执行,如果它自服务器上计算的日期以来已经少于这么多秒,但是我在日期比较方面遇到了一些麻烦。以下是我尝试过的内容:
<script type="text/javascript">
var elapsedMillis = 10000;
if(Date.now() - <%=(benchmarkDate-new DateTime(1970,1,1)).TotalMilliseconds%> < elapsedMillis)
{
//do stuff
}
</script>
不幸的是,即使在设置benchmarkDate的十秒内执行,C#TimeSpan也会给我一些毫秒,这些毫秒与JavaScript的Date.now()相差大约14,000秒。
答案 0 :(得分:3)
这结果是一个时区问题,因为我没有意识到JavaScript的Date.now()正在返回UTC日期。这是我首先将C#日期转换为UTC的修复方法,以防它帮助其他人:
<script type="text/javascript">
var elapsedMillis = 10000;
if(Date.now() - <%=(benchmarkDate.ToUniversalTime()-new DateTime(1970,1,1)).TotalMilliseconds%> < elapsedMillis)
{
//do stuff
}
</script>