将 C# DateTime 转换为 Javascript 日期

Posted

技术标签:

【中文标题】将 C# DateTime 转换为 Javascript 日期【英文标题】:Convert C# DateTime to Javascript Date 【发布时间】:2013-07-30 18:43:10 【问题描述】:

我在 javascript 中有一个从 MVC 接收 C# DateTime 的函数。 如果日期为空,则应返回“-”,如果是有效日期,则应返回格式化日期。

重要提示:无法从 C# 以其他格式发送日期。

Javascript:

function CheckDate(date) 

  if (date == "Mon Jan 01 0001 00:00:00 GMT+0000 (GMT Daylight Time)")
    return "-";
  else 
    var dat = new Date(date);
    return dat.getFullYear() + dat.getMonth() + dat.getDay();
  

有没有更好的方法来比较日期是否是 C# New DateTime?

我如何解析并返回“yyyy/MM/dd”格式的日期?

【问题讨论】:

在 C# 端转换它的代码是什么?例如,无论服务器在哪里,它都可能是特定于文化的。 “重复”***.com/questions/1056728/… 服务器端的代码只是 CheckDate(@model.Dated) 只是一个DateTime C#对象。 http://momentjs.com/ 什么日期时间结构来自c#?@DKALT 【参考方案1】:

鉴于您一直坚持的输出,我想不出更好的方法来在 javascript 端捕获 0 的 DateTime

Date.parse 应该可以满足您的解析需求,但它会返回毫秒数,因此您需要在其周围包裹一个 Date 构造函数:

var date = new Date(Date.parse(myCSharpString));

返回日期,您只需要

date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + (date.getDate() + 1);

date.getMonthdate.getDate 是 0 索引而不是 1 索引。)

小提琴:http://jsfiddle.net/GyC3t/

编辑 感谢 JoeB 的发现,让我更正一下。 date.getMonth() 函数是 0 索引的,但 date.getDate() 函数是 1 索引的。小提琴正在使用 +1“工作”,因为 date.getMonth 在当地时间工作,即在 UTC 之前。我没有正确检查文档,只是添加了 1,它与小提琴一起使用。

更合适的方法是:

返回日期,你只需要

date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + (date.getUTCDate());

date.getMonth 是 0 索引,而 date.getDate 是 1 索引但容易受到时区差异的影响。)

小提琴:http://jsfiddle.net/GyC3t/25/

【讨论】:

太棒了!!谢谢。 Javascript 日期月份为 0 索引,但日期为 1 索引。 @JoeB 哇。那对我来说太可怕了。感谢您接听! 我想得到 2 位数的月份和日期,有什么想法可以在 javascript 中进行吗? @Gupta 您的评论不准确。我已经给出了2位数的答案。如果您想知道如何将 4 到 04 之类的数字填零,您真的只想在 Google 上搜索“零填 javascript”。这是弹出的第一个答案之一:***.com/questions/10073699/…【参考方案2】:

我使用以下方法将 Javascript 日期传递到 C#:

var now = new Date();
var date = (now.getTime() / 86400000) - (now.getTimezoneOffset() / 1440) + 25569;

所以如果你从 C# 中得到毫秒数,它应该是这样的:

var csharpmilliseconds;
var now = new Date();
var date = new Date((csharpmilliseconds + (now.getTimezoneOffset() / 1440) - 25569) * 86400000);

【讨论】:

以上是关于将 C# DateTime 转换为 Javascript 日期的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 将 DateTime 格式转换为 SQL 格式

将 C# DateTime 转换为 Javascript 日期

琐事:如何将 JSON2.org DateTime 字符串转换为 C# DateTime

将序列化的 C# DateTime 转换为 JS Date 对象

C#如何将DateTime的12小时格式转换为24小时时间格式????

如何将 C# DateTime 转换为 MySQL 时间戳表列