使用默认js函数的javascript中日期的第二天

使用默认js函数的javascript中日期的第二天,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,是否可以使用默认java脚本或jquery函数以“yyyymmdd”格式获取给定日期的下一个日期?构造日期对象,并将日期加1 var dateStr = "20120902"; var d = new Date(dateStr.replace(/(\d{4})(\d{2})(\d{2})/, '$1/$2/$3')); d.setDate(d.getDate() + 1); console.log(d); 这是您的代码: function getnextDay(prevDate) { va

是否可以使用默认java脚本或jquery函数以“yyyymmdd”格式获取给定日期的下一个日期?

构造日期对象,并将日期加1

var dateStr = "20120902";
var d = new Date(dateStr.replace(/(\d{4})(\d{2})(\d{2})/, '$1/$2/$3'));
d.setDate(d.getDate() + 1);
console.log(d);
这是您的代码:

function getnextDay(prevDate) {
  var weekday = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
  prevDate = prevDate.toString();
  var formatteDate = prevDate.substr(0, 4) + ',' + prevDate.substr(4, 2) + ',' + prevDate.substr(6, 2);

  formatteDate = new Date(formatteDate);
  document.write(weekday[formatteDate.getDay() + 1])
}

getnextDay(19890831)​​

指定jQuery UI后,可以使用其内置的日期格式化程序获得所需的输出

使用下面显示的regexp和
新日期
,是为了保证日期解析的不规则性不会影响结果

function getTomorrow(dateStr) {
    var ymd = dateStr.match(/^(\d{4})(\d{2})(\d{2})$/);
    if (ymd) {
        var date = new Date(ymd[1], ymd[2] - 1, ymd[3]);
        date.setDate(date.getDate() + 1);
        return $.datepicker.formatDate('yymmdd', date);
    } else {  // parse error
        return null;
    }
}

演示在这里似乎有点混乱

javascript日期对象的核心是自1970-01-01 00:00:00UTC以来的毫秒数。最后一点非常重要

如果通过指定零件来创建日期,例如2012年9月2日(注意月号):

然后在主机本地时区的日期开始处为午夜创建一个日期对象,即本地时区的2012-09-02T00:00:00。但是,如果指定自历元起的时间,例如

new Date(1346544000000) // 2012-09-02T00:00:00Z
然后在该时间创建日期UTC,因此它将在代表同一UTC时间的不同时区中显示不同的本地时间。因此,如果时间是2012-09-02T00:00:00Z,那么在格林尼治标准时间(GMT+10)前十小时的时区中,它将是:

2012-09-02T10:00:00+1000
2012-09-01T18:00:00-0600
如果时区比格林尼治标准时间(GMT-06)晚六小时,则将是:

2012-09-02T10:00:00+1000
2012-09-01T18:00:00-0600
等等。

是的

使用javaScript非常简单,如下所示:

today = new Date().getTime();
tomorrow = today + 24*60*60*1000;
parsed_tomorrow = new Date(tomorrow);

这很直截了当

var today = new Date();
var date = new Date(today.getFullYear(),today.getMonth(),today.getDate()+1);
如果广泛使用日期功能,请使用moment.js。

只要有第二天的时间,这就足够了。

看看这个问题:如果我是你,我会使用日期库。几万字节真的会破坏交易吗?但我的日期不是字符串格式。(就像1989年8月31日的19890831)。@ErwinI将我的日期定为2012年9月30日。我希望输出是10月1日。这很好,但我需要同样的'yyyymmdd'格式的输出。谢谢。@TinaCGHoehr将在10月1日。此代码无法正常工作,因为
新日期('yyyy-mm-dd')
行将始终设置UTC午夜的日期。当你转换回西半球的“本地时间”时,你会在开始的当天返回。还要注意的是,就Mozilla而言,
yyyy/mm/dd
不在他们的“理解”格式列表中,因此这种行为是未定义的。文档指定了ISO 8601(即,
yyyy-mm-dd
)或RFC822格式。您的前8行可以(应该)替换为
var-weekday=['Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'、'Sunday'周三'等]/code>,这不是op的问题。以后也可以进行优化。@AshirvadSingh没有否决,只是给你一个关于js最佳实践的指针。您选择是否遵循它。:)@ashirvadsing正确写入数组不是“优化”。第一次写得不正确表明编程风格不好和/或对该语言不熟悉。@alnitak该格式是在另一篇文章的评论中指定的,而不是在问题中指定的。问题最初也是“第二天”而不是“下一天”,因此实施是合理的。对于以逗号分隔的日期字符串,浏览器似乎愿意对其进行解析。我不知道这是否严格符合规范,但如果不符合,也许你可以为我们指出正确的方向?@HarishAnchu oops,我注意到你说的是jQuery,而不是jQuery UI。你也碰巧有吗?没问题。我已经在代码中使用jquery日期选择器@参宿一