我想显示昨天的日期和日期。
今天日期的剧本:
<script type="text/javascript">
<!--
// Array of day names
var dayNames = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
// Array of month Names
var monthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var now = new Date();
document.write(dayNames[now.getDay()] + ", " +
monthNames[now.getMonth()] + " " +
now.getDate() + ", " + now.getFullYear());
// -->
</script>
我知道添加-1会改变日期/年,但是它没有成功更改星期/月份的日期,因为我们已经在数组中列出了日期/月份,所以周日之前没有任何内容一月之前没什么。
如何显示昨天/日前的日期,确保日期和月份会发生变化?
答案 0 :(得分:1)
您可以尝试: DEMO
dayNames[now.getDay()==0?6:now.getDay()-1]
修改强>
和setDate为昨天: Demo
now.setDate(now.getDate()-1); // set yesterday for now
答案 1 :(得分:0)
您可以为昨天创建一个Date实例:
var yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
然后,您可以继续进行当前正在做的事情。 JavaScript日期代码将确保正确的事情发生在所有其他字段中。换句话说,如果“今天”是1月1日,那么“昨天”将是去年12月31日。
答案 2 :(得分:0)
昨天的一周中的某一天:dayNames[(now.getDay() + 6) % 7]
(相当于-1 + 7
)
上个月:monthNames[(now.getMonth() + 11) % 12]
答案 3 :(得分:0)
您最好的选择是使用一个理智的日期处理库,并避免JavaScript提供开箱即用的可怕的70年代风格的API。节省您的时间和理智,并使用Moment.js:
// this is a quick way to load, not what I would do for production installs:
eval($.get('http://momentjs.com/downloads/moment.min.js').responseText);
document.write(moment().subtract(1, 'day').format("dddd MMMM D, YYYY"));
请注意,这意味着您可以减去天数以外的其他内容,例如数月或数年,并且无需记住数学(或DST)即可运行:
console.log(moment("2008-02-29").subtract(1, 'year').format("dddd MMMM D, YYYY"))
> Wednesday February 28, 2007
console.log(moment("2008-02-29").add(4, 'years').format("dddd MMMM D, YYYY"))
> Wednesday February 29, 2012
console.log(moment("2008-02-29").add(3, 'years').format("dddd MMMM D, YYYY"))
> Monday February 28, 2011