javascript - 为什么我无法将毫秒从 C# 转换为 JavaScript 日期对象?

标签 javascript .net date

我在 .net 中编写了一个返回日期的函数。我需要将该日期放入 JavaScript 中的日期对象中。

根据https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date ,我应该能够调用 new Date(x),其中 x 是我的日期中的毫秒数。

因此,我在 ASP.net MVC 3 代码中编写了以下内容:

ViewBag.x = new TimeSpan(someDate.Ticks).TotalMilliseconds;

然后,在 JavaScript 中,我得到以下代码:

new Date( 63461023004794 )

代表的日期应为 2012 年 1 月 1 日。

但是,JavaScript 读取的日期是 3980 年 12 月 31 日。

这里出了什么问题?

最佳答案

您的 .NET 代码为您提供自 0001 年 1 月 1 日以来的毫秒数。

JavaScript 构造函数占用自 1970 年 1 月 1 日以来的毫秒数。

最简单的事情可能是将您的 .NET 代码更改为:

ViewBag.x = (someDate - new DateTime(1970, 1, 1)).TotalMilliseconds;

关于javascript - 为什么我无法将毫秒从 C# 转换为 JavaScript 日期对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9523088/

相关文章:

c# - 可以使用通配符指定目录路径吗?

java - 如何在 Joda-Time 中总结岁月

linux - 如何在 Linux shell 中临时调整日期/时间

javascript - 引用子模块angularjs中的Controller

javascript - slider 未正确渲染

javascript - 如何仅使用 jQuery 使单选按钮选项依赖于其他单选按钮选项?

java - 只有日期的日历,没有日历的时间?

javascript - 如何在动态表单中将选定复选框的值存储在 FormGroup 中

c# - 静态类必须派生自对象 (C#)

c# - 如何避免 Entity Framework 中硬编码字段名称?