2012-03-03 34 views
2

我很困惑,为什么我在红宝石和javascript中获得同一日期的不同时间戳。为什么我在红宝石和javascripts中获得不同时间戳相同的日期

在红宝石

> ruby_date = Date.new(2012,1,1) 
> ruby_date.to_time.utc.to_i 
=> 1325368800 

jQuery中

<script type="text/javascript"> 

    var jquery_date = Date.UTC(2012,1,1); 
    document.write(jquery_date); 

</script> 

回报1328054400000.

为什么会出现在时间戳的差异。请解释。我正在寻找从时代开始的秒数。谢谢

+0

'Date.UTC'中的内容让你认为它是jQuery? (这是ECMAScript btw) – 2012-03-03 21:30:28

+0

@ŠimeVidas,对不起,这是一个漫长的一天与我的电脑战斗。 – Hishalv 2012-03-03 21:40:09

+0

http://stackoverflow.com/q/20806052/1048572 – Bergi 2015-06-01 20:01:41

回答

2

您没有将时间值传递给日期对象。这两种实现都假定指定一天的不同时间:

1325368800 = 31.12.2011 22:00:00 


1328054400 = 01.02.2012 00:00:00 

注意,我删除的JavaScript时间戳的最后3位数字,因为它们存储在毫秒(感谢rjz)。

Mark Rushakoff在他的回答中解释了月份差距。

+1

另外值得一提的是,JavaScript时间戳以毫秒为单位(比标准unix时间戳大1000倍)。 – rjz 2012-03-03 21:35:40

+0

@Alp非常感谢,救了我几个小时的头撞,我欠你一杯啤酒。我没有意识到我忽略了时间价值。 – Hishalv 2012-03-03 21:48:12

+0

很高兴我能帮到你。请把啤酒送到德国,现在可能需要一个:) – Alp 2012-03-03 21:51:03

3

区别在于(很有可能),因为Javascript的Date.UTC中的月份为零,而Ruby的Date.now为单位。