【问题标题】:Sending a date to Javascript new Date() object from MVC model changes date [duplicate]从MVC模型向Javascript new Date()对象发送日期更改日期[重复]
【发布时间】:2023-03-19 12:55:01
【问题描述】:

希望标题说明了一切,但无论哪种方式我都会澄清。我很少使用 Javascript 日期,所以这让我很难过。

所以我通过 MVC 提取日期并将其推入 Javascript 数组,每次推入数组时,我都会创建一个带有年、月和日的 new Date()。但每次我阅读这些值时,它都会增加一个月!

代码sn-p:

//Get list of dates
var auditDates = [];
@foreach (var a in Model.Audits)
{
    //Push into auditDates Array
    @:auditDates.push(new Date('@a.AuditDate.Year', '@a.AuditDate.Month', '@a.AuditDate.Day'));

    //Write Actual dates stored in audits to console without pushing into auditDates Array
    @:console.log("Actual Date: " + '@a.AuditDate.Year' + " " + '@a.AuditDate.Month' + " " + '@a.AuditDate.Day');
}

//Write to console with array full of dates
console.log(auditDates);

从控制台可以看出,第一个块是存储在模型中的实际日期 - 仅用于视觉指示。

第二个块是错误的日期,它输出的是十二月,实际上应该是十一月!

第三个区块就是我要比较的所有日期。在这一点上,与该问题没有真正的相关性。

因此,如果有人能指出解决错误日期问题的方向,我们将不胜感激。

问候,

【问题讨论】:

  • JavaScript 月 are 0 based
  • 我找了答案没找到,抱歉!虽然我的 Q 更简洁且具有描述性 - 可能会帮助未来的读者了解更多:)

标签: javascript c# asp.net-mvc date


【解决方案1】:

javascript 的日期月份从 0 开始,所以 9 是第 10 个月,现在是 10 月

这是编程世界中一个古老的(可能是不幸的,可能正在消亡的)传统,请参阅旧标准 (POSIX) 本地时间 C 函数 http://linux.die.net/man/3/localtime

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-19
    相关资源
    最近更新 更多