每月的最后一天(没有时间戳)

时间:2011-05-16 18:52:21

标签: javascript jquery html

我正在尝试在html / javascript / jquery中创建两个动态日期。我希望日期格式化为yyyy / mm / dd。第一个日期将返回上个月的最后一天,第二个日期将返回当前月份的最后一天。有谁知道如何在上面列出的技术中做到这一点?

我99.9999%肯定我可以通过使用C#调用后端页面来实现这一点,但我想看看是否有更有效的方法在DOM中做到这一点(DOM是正确的术语吗?)

从上一个关于SO的问题,这里是我现在使用的代码......

var d = new Date();
document.write(new Date(d.getFullYear(), d.getMonth() + 1, 0, 23, 59, 59));

3 个答案:

答案 0 :(得分:4)

似乎你已经得到了大部分答案:

var d = new Date();
var lastcurrent = new Date(d.getFullYear(), d.getMonth() + 1, 0, 23, 59, 59);
var lastprevious = new Date(d.getFullYear(), d.getMonth(), 0, 23, 59, 59);

然后按照您希望的方式格式化它们:

document.write(lastcurrent.getFullYear() + '/'
               + (lastcurrent.getMonth() + 1) + '/' + lastcurrent.getDate());
document.write(lastprevious.getFullYear() + '/' 
               + (lastprevious.getMonth() + 1) + '/' + lastprevious.getDate());

jsFiddle here

修改
两位数的月份(最后一天应该总是两位数):

document.write(lastcurrent.getFullYear()
               + '/' + String('00'+(lastcurrent.getMonth() + 1) ).slice(-2)
               + '/' +  lastcurrent.getDate() );
document.write(lastprevious.getFullYear()
               + '/' + String('00'+ (lastprevious.getMonth() + 1) ).slice(-2)
               + '/' + lastprevious.getDate());

答案 1 :(得分:0)

这应该做到

var today = new Date();

var lastofpreviews = new Date( today.getUTCFullYear(), today.getUTCMonth()    , 0 );
var lastofthis     = new Date( today.getUTCFullYear(), today.getUTCMonth() + 1, 0 );

演示http://jsfiddle.net/gaby/GW9B9/

答案 2 :(得分:0)

var d = new Date();
document.write(new Date(d.getFullYear(), d.getMonth(), 0, 23, 59, 59).toLocaleFormat('%Y/%m/%d'));
document.write(new Date(d.getFullYear(), d.getMonth() + 1, 0, 23, 59, 59).toLocaleFormat('%Y/%m/%d'));

这将以请求的格式(YYYY / mm / dd)格式化日期