gpt4 book ai didi

javascript - 日期改为 2013 年 4 月 1 日,而不是 2013 年 3 月 31 日

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:03:15 26 4
gpt4 key购买 nike

我有这两个函数可以以正确的格式 (mm-dd-yyyy) 创建一个新字符串,但现在它似乎工作得不太好......当我输入日期 31-03-2013 这是一个有效的日期,它出现在 04-01-2013 之后的第一个月......

下面是两个函数:

Date.prototype.sqlDate = Date.prototype.sqlDate || function () {
return this.getMonth() + "-" + this.getDate() + "-" + this.getFullYear();
};

String.prototype.sqlDate = String.prototype.sqlDate || function () {
var date = new Date(0);
var s = this.split("-");
//If i log "s" here its output is:
// ["31", "03", "2013", max: function, min: function]
date.setDate(s[0]);
date.setMonth(s[1]);
date.setYear(s[2]);
return date.sqlDate();
};

最佳答案

日期月份是介于 0-Jan 和 11-Dec 之间的数字,

所以 3 是四月...

这非常烦人,因为:

  • day- 1 到 31. 基于一个索引
  • - 0 到 11。从零开始的索引。

嗯……javascript 的规范……继续。

MDN

您可以使用它来正确设置:

date.setMonth(parseInt(s[1], 10) - 1);

你可以看到它在这里工作:

example

关于javascript - 日期改为 2013 年 4 月 1 日,而不是 2013 年 3 月 31 日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com