将C#DateTime推送到JavaScript数组

将C#DateTime推送到JavaScript数组,javascript,razor,asp.net-core,Javascript,Razor,Asp.net Core,我正在尝试将C#DateTime推送到javascript数组。理想情况下,我希望它转换为字符串。我尝试过多种不同的方法,但没有一种有效。我经常遇到的错误是我缺少了一个我无法理解的) 我声明一个局部js变量来保存值: var startDates = []; 我试过: @foreach (var d in Model.Items) { @:startDates.push(Date(@d.StartDate.Date));

我正在尝试将C#
DateTime
推送到javascript数组。理想情况下,我希望它转换为字符串。我尝试过多种不同的方法,但没有一种有效。我经常遇到的错误是我缺少了一个我无法理解的

我声明一个局部js变量来保存值:

var startDates = [];
我试过:

        @foreach (var d in Model.Items)
        {
            @:startDates.push(Date(@d.StartDate.Date));
        }

        @foreach (var d in Model.Items)
        {
            @:startDates.push(@d.StartDate);
        }

每个都会导致相同的JavaScript运行时错误:我缺少一个

我还使用了一种类似的浮动方法,效果很好:

        @foreach (var v in Model.Items)
        {
            @:values.push(parseFloat(@v.Value));
        }
呈现的JavaScript的一个示例是:

            startDates.push(new Date(1/1/2016 12:00:00 AM));
            startDates.push(new Date(2/1/2016 12:00:00 AM));
            startDates.push(new Date(3/1/2016 12:00:00 AM));
            startDates.push(new Date(4/1/2016 12:00:00 AM));
            startDates.push(new Date(5/1/2016 12:00:00 AM));
            startDates.push(new Date(6/1/2016 12:00:00 AM));

错误是由传递到
new Date()
构造函数的值引起的

它应该在日期值周围加引号:
新日期('1/1/2016 12:00:00 AM')


尝试将
Date()
更改为
new Date()
@333我也尝试过,但没有效果。你能发布呈现的JavaScript吗?@KevinBoucher我在编辑过的问题中添加了一个js示例。你需要用如下引号将值括起来:new Date('1/1/2016 12:00 AM')。这很有效。是否有办法将
日期
解析为短日期(即无时间)?我尝试了
@:StartDate.push(新日期('@d.StartDate.Date')
但这仍然会呈现长日期格式,它确实需要引号,但即使如此,它也可能无法工作,这取决于访问者的时区。请看这里,了解一个简单的方法:我知道这是一个不幸的日期,它没有命名为DateTime。解析字符串时,假定字符串为UTC,这可能会导致混淆。从中,您还可以使用
新日期(年、月、日)
指定本地日期,但月份是以零为基础的(这也是不直观的)。
        @foreach (var d in Model.Items)
        {
            @:startDates.push(new Date(@d.StartDate.Date));
        }
        @foreach (var d in Model.Items)
        {
            var date = d.StartDate.ToString();
            @:startDates.push(date);
        }
        @foreach (var v in Model.Items)
        {
            @:values.push(parseFloat(@v.Value));
        }
            startDates.push(new Date(1/1/2016 12:00:00 AM));
            startDates.push(new Date(2/1/2016 12:00:00 AM));
            startDates.push(new Date(3/1/2016 12:00:00 AM));
            startDates.push(new Date(4/1/2016 12:00:00 AM));
            startDates.push(new Date(5/1/2016 12:00:00 AM));
            startDates.push(new Date(6/1/2016 12:00:00 AM));