如何修复MS SQL Server 2008R2/2012和Javascript之间的日期差异
How to fix dates discrepancy between MS SQL Server 2008R2/2012 and Javascript
我们将日期存储在数据库中,作为日期和"1970年1月1日"之间的差异(以分钟为单位)。
以下是来自同一台机器的结果:
--TSQL (MS Sql Server 2008R2)
SELECT DATEADD(minute, 22572765, '1-Jan-1970'); -- gets 1-Dec-2012 12:45:00.000
//JS (Chrome) - assume minDate = 1-Jan-1970
new Date(minDate.getTime() + (22572765 * 60 * 1000)) -- gets me 1-Jan-2013 12:45:00
解决差异的最佳方法是什么?
在我看来,您的minDate
是错误的,因为这是:
new Date((new Date(1970, 0, 1)).getTime() + (22572765 * 60 * 1000))
给我2012年12月1日12:45:00.000 GMT。
在JavaScript中,month
的值是从零开始的,所以如果您使用new Date(1970, 1, 1)
构建minDate
,这就是为什么您需要一个月的时间。
还要注意的是,除非您使用事物的UTC
变体(getUTCYear
等),否则JavaScript日期将在输出时为您提供日期的本地时区版本(您构建日期的方式是正确的,而不是minDate
,只是在输出时需要小心)。
相关文章:
- java.net和javascript之间正则表达式的差异
- JavaScript中的函数和对象之间没有区别吗?
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 如何在javascript中获取两个日期之间的周六和周日的日期
- javascript函数的:和=之间的区别
- PHP和Javascript之间的Regex差异
- 是否有任何JavaScript UI组件可以显示字符串之间的差异
- javascript中两年之间的小时差(带闰年)
- 如何在javascript中显示两年之间的所有闰年
- Math.min()和Math.max()之间有什么区别?在Javascript中
- 使用javascript单击同一按钮,在两种样式之间更改css值
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 定时循环,使用Javascript在2个循环之间间隔x秒
- Javascript 类型未定义和 void 之间的区别
- Regex用于年龄验证,仅使用Javascript接受0-200岁之间的年龄
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟
- 使用解析为javascript源的.php,如何使用条件语句将javascript代码封装在php括号之间
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- 在JavaScript中,如何修复元素显示和变量创建之间的初始差异
- 输入检查用户输入的值介于 0-9 之间 Javascript