DateTime 到 javascript 日期

IT技术 c# .net javascript
2021-02-22 12:35:43

Stackoverflow 上的另一个答案是从 Javascript 日期到 .net DateTime 的转换:

long msSinceEpoch = 1260402952906; // Value from Date.getTime() in JavaScript
return new DateTime(1970, 1, 1) + new TimeSpan(msSinceEpoch * 10000);

但是反过来怎么做呢?日期时间到 Javascript 日期?

6个回答

尝试:

return DateTime.Now.Subtract(new DateTime(1970, 1,1)).TotalMilliseconds

编辑:真正的 UTC 更好,但我们需要保持一致

return DateTime.UtcNow
               .Subtract(new DateTime(1970,1,1,0,0,0,DateTimeKind.Utc))
               .TotalMilliseconds;

虽然,再想一想也无所谓,只要两个日期在同一时区即可。

我在这里有相同的代码,但它在 javascript 日期中产生了 5:30 的差异,而 C# 日期工作正常。
2021-04-16 12:35:43
您可能想要使用 DateTime.UtcNow 而不是 DateTime.Now
2021-04-22 12:35:43
关于您的第二个想法:在夏令时过渡期间或从夏令时过渡期间确实很重要(我总是不得不非常努力地记住哪个:)。在转换期间,2:00 到 3:00 的时间会重复两次。这意味着在一小时内,javascript 日期将关闭一小时。UTC 没有 DLS,所以它没有那个问题。
2021-05-02 12:35:43

JavaScript 日期构造函数接受自 Unix 纪元(1970 年 1 月 1 日 00:00:00 UTC)以来的毫秒数。这是将 .Net DateTime 对象转换为 JavaScript 日期的 C# 扩展方法:

public static class DateTimeJavaScript
{
   private static readonly long DatetimeMinTimeTicks =
      (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).Ticks;

   public static long ToJavaScriptMilliseconds(this DateTime dt)
   {
      return (long)((dt.ToUniversalTime().Ticks - DatetimeMinTimeTicks) / 10000);
   }
}

JavaScript 用法:

var dt = new Date(<%= DateTime.Today.ToJavaScriptMilliseconds() %>);
alert(dt);
C# 用法 long date = DateTimeJavaScript.ToJavaScriptMilliseconds(DateTime); 签入 javascript(在 Google Chrome 中按 F12 并转到控制台) var date = new Date(long); console.log(date.toString());
2021-04-17 12:35:43

您可以在 Action 中尝试此操作:

return DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss");

这在你的 Ajax 成功中:

success: function (resultDateString) {
    var date = new Date(resultDateString);
}

或者在你的视图中:(Javascript 加 C#)

var date = new Date('@DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss")');
易于理解
2021-04-22 12:35:43
对我来说最好的答案
2021-05-12 12:35:43

使用Moment.js只需使用:

var jsDate = moment(netDateTime).toDate();

netDateTime您的 DateTime 变量在哪里序列化,例如"/Date(1456956000000+0200)/".

@Kamil momentjs可以解析 ASP.NET json 数据,vanilla js 不能
2021-04-17 12:35:43
为什么不只是 JavaScript 构造函数new Date(netDateTime)
2021-05-01 12:35:43

这应该可以解决问题:

date.Subtract(new DateTime(1970, 1,1)).TotalMilliseconds