2

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

4

6 回答 6

3

当您指定 jQuery UI 时,您可以使用其内置的日期格式化程序来获取所需的输出。

使用正则表达式和new Date如下所示是为了保证日期解析的变幻莫测不会影响结果。

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;
    }
}

演示在http://jsfiddle.net/alnitak/R8awH/

于 2012-09-02T08:24:10.123 回答
2

这里似乎有些混乱。

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

如果您通过指定部分来创建日期,例如 2012 年 9 月 2 日(注意月份编号):

new Date(2012, 8, 2);

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

new Date(1346544000000) // 2012-09-02T00:00:00Z

那么日期是在那个时间UTC创建的,所以它会在不同的时区显示不同的本地时间,代表相同的 UTC 时间。因此,如果时间是 2012-09-02T00:00:00Z,那么在 GMT (GMT+10) 前十小时的时区中,它将是:

2012-09-02T10:00:00+1000

如果时区比 GMT (GMT-06) 晚 6 小时,它将是:

2012-09-01T18:00:00-0600

等等。

于 2012-09-02T10:27:11.553 回答
1

构造日期对象,并设置日期加 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);
于 2012-09-02T07:49:31.257 回答
0

这是您的代码:

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)​​

小提琴

于 2012-09-02T08:10:45.810 回答
0

它非常简单。

var today = new Date();
var date = new Date(today.getFullYear(),today.getMonth(),today.getDate()+1);

如果您广泛使用日期功能,请使用 moment.js。
为了第二天,这就足够了。

于 2015-09-14T04:23:33.360 回答
-1

是的

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

today = new Date().getTime();
tomorrow = today + 24*60*60*1000;
parsed_tomorrow = new Date(tomorrow);
于 2014-04-08T12:50:10.537 回答