如何在Javascript中使用来自perl的时间戳?

如何在Javascript中使用来自perl的时间戳?,javascript,perl,timestamp,utc,epoch,Javascript,Perl,Timestamp,Utc,Epoch,在我的后端(用Perl编写),我生成一个结束日期。在前端,我想计算这个结束日期之前的剩余时间。为了避免时区问题,我想使用UTC 在perl中,结束日期封装在数据对象中: data => {endTime => $date->epoch()} 这是我编写的Java脚本函数: updateCounter: function (element){ var now = new Date().getTime(); var endTime = $(

在我的后端(用Perl编写),我生成一个结束日期。在前端,我想计算这个结束日期之前的剩余时间。为了避免时区问题,我想使用UTC

在perl中,结束日期封装在
数据
对象中:

data => {endTime => $date->epoch()}
这是我编写的Java脚本函数:

    updateCounter: function (element){
        var now = new Date().getTime();
        var endTime = $(element).data("endtime");
        var diff = epochEndDealTime - milliseconds;
        console (diff, now, endTime);
        ...
    }
我知道,
endTime
是将来的事,所以
diff
应该是正值,但当我测试时,它会变小,例如:

-1530397503497 1531929432906 1531929409

我做错了什么?

如果我们以不同的方式组织数字

now:     1531929432906 
endTime: 1531929409
您可能会注意到
现在
大约比
结束时间
大1000倍。这是因为JS的
newdate().getTime()
返回自
1970-01-01T00:00:00Z
以来的毫秒数,而Perl的
time
返回自
1970-01-01T00:00:00Z
以来的秒数

因此,只需将
endTime
乘以1000,或将
now
除以1000即可


(您也可以使用不同的方式获取Perl中的时间,以获得更高的精度,但这似乎不是必需的。)

如果我们以不同的方式组织数字

now:     1531929432906 
endTime: 1531929409
您可能会注意到
现在
大约比
结束时间
大1000倍。这是因为JS的
newdate().getTime()
返回自
1970-01-01T00:00:00Z
以来的毫秒数,而Perl的
time
返回自
1970-01-01T00:00:00Z
以来的秒数

因此,只需将
endTime
乘以1000,或将
now
除以1000即可


(您也可以使用不同的方式获取Perl中的时间,以获得更高的精度,但这似乎不是必需的。)

您的历元似乎以秒为单位,而不是以秒为单位milliseconds@charlietfl这可能是一个原因,但如果日期接近(在小时内),分割后仍然会出现时区偏移问题@charlietfl你能再解释一下吗?我认为UTC是一个通用的解决方案,通过使用我看到在GMT中,较大的一个是下午3:57:12.906,而另一个是下午4:17:14,所以对我来说,这不是小时的问题,但你的纪元似乎以秒为单位,而不是以秒为单位milliseconds@charlietfl这可能是一个原因,但是仍然
now/1000>endTime
在分割之后,如果日期接近(在小时内),现在可能会出现时区偏移问题@charlietfl您能再解释一下吗?我认为UTC是一个通用的解决方案,通过使用我看到在GMT中,较大的一个是下午3:57:12.906,而另一个是下午4:17:14,所以对我来说,这不是小时的问题,而是分钟的问题