0

这就是我将 .Net Datetime 转换为 Javascript 的方式。我很久以前在某个地方找到了代码并将其用于 Highcharts。现在图表有时看起来很奇怪,线条混乱。我怀疑这与日期有关。

Datetime curDate = "11/14/2013";
string jsDate = "Date.UTC(" + curDate.Year + "," + (curDate.Month - 1) + "," +     curDate.Day;
if (curDate.Millisecond > 0)
        {
            jsDate += "," + curDate.Hour + "," + curDate.Minute + "," + curDate.Second + "," + curDate.Millisecond;
            return jsDate += ")";
        }
        if (curDate.Second > 0)
        {
            jsDate += "," + curDate.Hour + "," + curDate.Minute + "," + curDate.Second;
            return jsDate += ")";
        }
        if (curDate.Minute > 0)
        {
            jsDate += "," + curDate.Hour + "," + curDate.Minute;
            return jsDate += ")";
        }
        if (curDate.Hour > 0)
        {
            jsDate += "," + curDate.Hour;
            return jsDate += ")";
        }

        jsDate += ")";

这是将.Net日期转换为javascript的正确方法吗?

谢谢!

4

1 回答 1

3

在两者之间进行转换的最简单方法是将 .NET 时间转换为从 UNIX 纪元时间开始的以毫秒为单位的时间跨度:

public static long ToEpochDate(this DateTime dt)
{
    var epoch = new DateTime(1970, 1, 1);
    return dt.Subtract(epoch).Ticks;
}

然后您可以使用它来生成您的 JS 字符串:

DateTime current = DateTime.Now;
var jsDate = string.Format("Date.UTC({0})", current.ToEpochDate());
于 2013-11-14T18:40:42.750 回答