[英]displaying the day of the week 3 days before today's date using javascript
我尝试使用此javascript来显示访问html页面之前的3天中的星期几。 今天星期天,星期一或星期二不起作用。 (我认为问题是天数被编号为0-6,而在var date行中未考虑负数)
var now = new Date();
var days = new Array(
'Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
var months = new Array(
'January','February','March','April','May',
'June','July','August','September','October',
'November','December');
var date = ((now.getDate()<10) ? "0" : "")+ now.getDate()-3;
function fourdigits(number) {
return (number < 1000) ? number + 1900 : number;}
today = days[now.getDay() -3] + ", " +
months[now.getMonth()] + " " +
date + ", " +
(fourdigits(now.getYear()));
document.write(today);
您的代码有很多问题。
<SCRIPT LANGUAGE="JavaScript">
脚本元素的language属性在HTML 4中已弃用,在后续版本中已删除。
<!--
HTML注释定界符在脚本元素的开头和结尾处是允许的,但不应使用。 他们已经20年没用了。
var date = ((now.getDate()<10) ? "0" : "")+ now.getDate()-3;
当日期为1到3时,表达式的第一部分将返回一个字符串,例如“ 0”或“”。 第二部分将返回一个从-2到0的数字,因此结果将是从“ 0-2”到“ 00”。
您可以执行以下操作:
var date = now.getDate();
date = (date < 10? '0' : '') + date;
然后是:
today = days[now.getDay() -3] + ", " +
getDay返回代表星期几的数字,0代表星期日,星期六代表6,因此从星期日到星期二(数字0–2),您将尝试访问不存在的days属性,该属性将返回undefined 。
(fourdigits(now.getYear()));
getYear总是返回减去1900的年份。请改用getFullYear 。
请参阅在哪里可以找到有关在JavaScript中格式化日期的文档? 并将+1添加到当前日期 。
您应该从日期减去3天开始,然后格式化结果以输出:
var now = new Date(); now.setDate(now.getDate() - 3); var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday', 'Friday','Saturday']; var months = ['January','February','March','April','May','June','July', 'August','September','October','November','December']; var date = now.getDate(); date = (date < 10? "0" : "") + date; var today = days[now.getDay()] + ", " + months[now.getMonth()] + " " + date + ", " + now.getFullYear(); document.write(today);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.