Javascript日期|将日期设置为一年的最后一秒

时间:2019-05-13 12:00:03

标签: javascript date

在javascript中,我有一个具有以下值的Date对象:

Thu Jan 01 1998 00:00:00 GMT+0100 (Central European Standard Time)

年份可以是任何东西,但是日期和时间始终是Jan 01 00:00:00

问题:如何将日期设置为所选年份的最后一秒? 在此示例中:Dec 31 1998 23:59:59 GMT+0100 (Central European Standard Time)

5 个答案:

答案 0 :(得分:4)

在下一年 的第一天午夜创建一个Date实例,然后将秒数移回1。

var lastSecond = new Date(1999, 0, 1, 0, 0, 0, 0);
lastSecond.setSeconds(lastSecond.getSeconds() - 1);

这是我使用JavaScript Date实例的一般方法,但是在这种情况下,因为一分钟总是一分钟59秒,一天中一小时又一天24小时总是有59分钟,所以您可以直接使用构造函数创建该目标值:

var lastSecond = new Date(1998, 11, 31, 23, 59, 59)

答案 1 :(得分:4)

您可以使用以下格式实例化Date对象:

  

新日期(年,月索引[,天[,小时[,分钟[,秒[,毫秒]]]]]]])

详细信息here

let date = new Date(1998,11,31,23,59,59); //note Month 11 is Dec (0 is Jan)

答案 2 :(得分:3)

您总是可以从一年的第一天删除1000ms以获得去年的最后一秒:

let januaryFirst = new Date('01/01/2000'),
    oneSecondbefore = new Date(+januaryFirst - 1000);

console.log(oneSecondbefore);

答案 3 :(得分:3)

设置示例日期:

let date = new Date(2000,0,1);

然后减去一秒钟:

date.setSeconds(-1);

答案 4 :(得分:2)

您可以使用Moment.js中的public class State { public int Value; } public class Tests{ public State state=new State(); [Testcase] public void Test1() { state.Value=1; } [Testcase] public void Test2() { state.Value=2; } ...... [Testcase] public void TestN() { -----breakpoint } } 方法。

http://momentjs.com/docs/#/manipulating/end-of/