Хотя бы еще немного JavaScript, вы могли бы сделать это как in this 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();
};
, и это получает элементы, содержащие поле даты (имя тега будет datefield), и я предпочел скорее выбрать значение данных в качестве атрибута, чтобы выбрать, какую дату показывать (поскольку у вас могло бы быть более одного недельного или вчерашнего поля)
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>
Вы должны были бы кодировать в любой дополнительные атрибуты стоимости данных, которые у вас могут быть, например, сейчас или завтра, но это должно быть совершенно очевидно, где вы могли бы это сделать :)
Возможно, вы забыли указать свой код JavaScript в свой вопрос. – gilly3