【问题标题】:Jquery new Date giving wrong data when passing to yyyy dd mmJquery new Date 在传递给 yyyy dd mm 时给出错误数据
【发布时间】:2017-01-17 11:36:53
【问题描述】:

我正在使用远程桌面,我在我的 javascript 文件中使用以下代码

var birthday = new Date(2017, 1, 1);
  console.log(birthday);

但是输出是这样的:-

Wed Feb 01 2017 00:00:00 GMT+0000 (Coordinated Universal Time).

我期待着 Sun Jab 01 2017。

RDP 在英国举办。是不是我做错了什么?

【问题讨论】:

  • Date 中,月份从零开始:new Date(2017, 0, 1)

标签: jquery date format


【解决方案1】:

javascript的Date对象中的month是从0开始的,所以month 1 is actually February

注意:如果 Date 被调用为具有多个参数的构造函数,如果值大于其逻辑范围(例如,提供 13 作为月份值或 70 作为分钟值),则将调整相邻值。例如。 new Date(2013, 13, 1) 等价于 new Date(2014, 1, 1),两者都为 2014-02-01 创建一个日期(注意月份是从 0 开始的)。其他值也类似:new Date(2013, 2, 1, 0, 70) 等价于 new Date(2013, 2, 1, 1, 10),它们都为 2013-03-01T01:10:00 创建日期。

getMonth method也一样:

getMonth() 方法根据本地时间返回指定日期中的月份,作为从零开始的值(其中零表示一年中的第一个月)。

【讨论】:

  • 那么如果我们必须将 dd mm yyyy 作为参数传递,如何修复以获得正确的日期
  • 表示月份的整数值,从一月的 0 开始到十二月的 11。 .. 这会有所帮助
  • 如果 Jan 为 0,Feb 为 1,而你想要 Jan,只需使用 0 而不是 1。
【解决方案2】:

试试这个:

var monthNames = [
  "January", "February", "March",
  "April", "May", "June", "July",
  "August", "September", "October",
  "November", "December"
];

var date = new Date();
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();

console.log(day, monthNames[monthIndex], year);

// 输出:2017 年 1 月 17 日

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-17
    • 2015-02-11
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2023-03-26
    • 2020-12-14
    • 2021-12-30
    相关资源
    最近更新 更多