Javascript显示日期

时间:2014-01-04 21:59:29

标签: javascript

我想显示昨天的日期和日期。

今天日期的剧本:

<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会改变日期/年,但是它没有成功更改星期/月份的日期,因为我们已经在数组中列出了日期/月份,所以周日之前没有任何内容一月之前没什么。

如何显示昨天/日前的日期,确保日期和月份会发生变化?

4 个答案:

答案 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