[英]Display Date 1 Week Ago & Yesterdays Date
我正在尝试显示2个日期(当地时间),从今天起一周前的确切日期和昨天的确切日期,并使用尽可能少的javascript
例子:
一周前显示为10/07/14
,一天前显示为10/12/14
我正在尝试以这种方式显示它
<p>The date a week ago was <span id="weekago"></span></p>
<p>The date yesterday was <span id="yesterday"></span></p>
尽管仍然需要一些JavaScript,但您可以在jsfiddle中这样做 :
这有助于撤消约会的某些日子
Date.prototype.subtractDays = function(nrOfDays) {
var day = 1000 * 60 * 60 * 24;
return new Date(this - (day * nrOfDays));
}
这有助于格式化(左键盘)
Object.prototype.padLeft = function(char, nr) {
var s = this.toString();
while (s.length < nr) {
s = char + s;
}
return s;
};
这种格式,因为你想要的
Date.prototype.formatStandard = function() {
return (this.getMonth() + 1).padLeft('0', 2) + '/' +
(this.getDate()).padLeft('0', 2) + '/' +
this.getFullYear();
};
这将获取包含日期字段的元素(标记名称将为日期字段),而我选择了选择数据值作为属性来选择要显示的日期(因为您可能有多个工作日或昨天字段)
function encodeDateFields() {
var elems = document.getElementsByName('datefield'), i, len, item, value;
if (elems === null || !elems.length) {
alert('No fields found!');
return;
}
for (i = 0, len = elems.length; i < len; i++) {
item = elems[i];
value = item.getAttribute('data-value');
switch (value) {
case 'weekago':
item.innerHTML = new Date().subtractDays(7).formatStandard();
break;
case 'yesterday':
item.innerHTML = new Date().subtractDays(1).formatStandard();
break;
default:
item.innerHTML = value + ' wasn\'t found!';
}
}
}
并且该函数称为onDomReady(使用jsfiddle)
encodeDateFields();
我对您的html进行了以下更改
<p>The date a week ago was <span name="datefield" data-value="weekago"></span></p>
<p>The date yesterday was <span name="datefield" data-value="yesterday"></span></p>
您可能需要像现在或明天一样,在可能具有的任何其他数据值属性中进行编码,但是在哪里可以做到这一点应该很明显:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.