有人能解释为什么JavaScript时间函数将特定的一天解释为25小时吗?

有人能解释为什么JavaScript时间函数将特定的一天解释为25小时吗?,javascript,Javascript,我正在研究一个web应用程序中的一个问题,其中显示的两个日期之间的天数在某些情况下为一天 然后我将其缩小为一个特定的日子,即2018年11月28日。如果有任何日期对经过这一天,则天数不再是整数 进一步完善我的搜索,我发现原因是函数报告2018年11月28日至29日期间的时间为25小时 var fromDate = new Date(2018,09,28).getTime() var toDate = new Date(2018,09,29).getTime() var hours = (toDa

我正在研究一个web应用程序中的一个问题,其中显示的两个日期之间的天数在某些情况下为一天

然后我将其缩小为一个特定的日子,即2018年11月28日。如果有任何日期对经过这一天,则天数不再是整数

进一步完善我的搜索,我发现原因是函数报告2018年11月28日至29日期间的时间为25小时

var fromDate = new Date(2018,09,28).getTime()
var toDate = new Date(2018,09,29).getTime()
var hours = (toDate - fromDate) / (1000 * 3600) 

有人能解释这种行为吗?

如评论中所述,例如,在欧洲,夏令时在10月28日结束,如果我没有弄错的话,凌晨2点变成凌晨1点,导致一天需要25个小时


夏时制结束如果你的时区使用夏时制,那么每年秋天有一天夏时制结束时正好有25小时,而春天的另一天夏时制开始时只有23小时。如果你将日期记录在console.log中,你会看到它从GMT+0200变为GMT+0100BTW,现在是10月28日,不是11月。@Mohammad,这将取决于您当地的时区以及夏令时的使用时间。