JavaScript,获取第二天的日期

Ada*_*oss 89 javascript date

我有以下脚本,第二天返回:

function today(i)
    {
        var today = new Date();
        var dd = today.getDate()+1;
        var mm = today.getMonth()+1;
        var yyyy = today.getFullYear();

        today = dd+'/'+mm+'/'+yyyy;

        return today;   
    }
Run Code Online (Sandbox Code Playgroud)

通过使用这个:

today.getDate()+1;
Run Code Online (Sandbox Code Playgroud)

我将在本月的第二天(例如今天将获得16).

我的问题是这可能是在本月的最后一天,因此最终会在2014年4月3日返回

有没有办法可以获得第二天保证的正确日期?

aca*_*lon 150

您可以使用:

var tomorrow = new Date();
tomorrow.setDate(new Date().getDate()+1);
Run Code Online (Sandbox Code Playgroud)

例如,由于4月份有30天,以下代码将输出5月1日:

var day = new Date('Apr 30, 2000');
console.log(day); // Apr 30 2000

var nextDay = new Date(day);
nextDay.setDate(day.getDate() + 1);
console.log(nextDay); // May 01 2000    
Run Code Online (Sandbox Code Playgroud)

小提琴.

  • 我不知道它是否有助于提高性能,但可以通过使用`tomorrow.setDate(tomorrow.getDate()+ 1)来简化它; (13认同)
  • 这是一个更适合我的需求的单行程序:`var明天 = new Date(new Date().setDate(new Date().getDate() + 1));` (5认同)
  • @marimaf - 这种方法会更新月份.他的例子有点不稳定,因为它取决于它与他做出这个答案的同一个月(我刚刚更新以解决这个问题),但这种方法很有效. (4认同)
  • 这种方法不会更新月份。因此,在示例中,如果您要求输入月份,它仍然会返回April。 (2认同)

Rus*_* F. 36

从这里复制粘贴: 在JavaScript中增加日期

三种选择:

仅使用JavaScript的Date对象(无库):

var today = new Date();
var tomorrow = new Date(today.getTime() + (24 * 60 * 60 * 1000));
Run Code Online (Sandbox Code Playgroud)

或者,如果您不介意更改日期(而不是创建新日期):

var dt = new Date();
dt.setTime(dt.getTime() + (24 * 60 * 60 * 1000));
Run Code Online (Sandbox Code Playgroud)

编辑:另见Jigar的回答和David的评论如下:var tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate()+ 1);

使用MomentJS:

var today = moment();
var tomorrow = moment(today).add(1, 'days');
Run Code Online (Sandbox Code Playgroud)

(请注意,add会修改你调用它的实例,而不是返回一个新实例,所以today.add(1,'days')今天会修改.这就是为什么我们从明天开始克隆op = .... )

使用DateJS,但它很长时间没有更新:

var today = new Date(); // Or Date.today()
var tomorrow = today.add(1).day();
Run Code Online (Sandbox Code Playgroud)

  • 将问题视为重复问题而不是c&p答案会更容易也更好. (6认同)
  • @Bergi特别是因为它被复制后答案已经改变了... (3认同)
  • 这不适用于夏令时!试试这个`new Date(2016,10,6)` (2认同)

lox*_*xxy 5

使用 Date 对象可以保证这一点。例如,如果您尝试创建April 31st

new Date(2014,3,31)        // Thu May 01 2014 00:00:00
Run Code Online (Sandbox Code Playgroud)

请注意,它是零索引的,所以 Jan. 是0,Feb. 是1等等。

  • 请注意,以“0”开头的数字文字是八进制,已被弃用。所以这段代码在严格模式下可能会导致错误。而且,你写的是 03 而不是 04 ... (4认同)