Я знаю эту тему: Elegantly check if a given date is yesterday
Но я просто ищу решение для JavaScript. Если возможно, короткий. Я не мог понять, на 100% надежный способ ..Проверьте, соответствует ли дата сегодня, был ли он вчера или был за последние 7 дней
Это, как я делал это до сих пор:
function FormatDate(someDtUTC) {
var someDt = new Date(someDtUTC.getTime() + someDtUTC.getTimezoneOffset() * 60 * 1000);
var dtNow = new Date();
if (dtNow.getUTCFullYear() == someDt.getUTCFullYear() && dtNow.getUTCMonth() == someDt.getUTCMonth()) {
if (dtNow.getUTCDate() == someDt.getUTCDate())
var dateString = "Today, " + Ext.Date.format(someDt, 'G:i'); // Today, 15:32
else if (dtNow.getUTCDate() - 1 == someDt.getUTCDate())
var dateString = "Yesterday, " + Ext.Date.format(someDt, 'G:i'); //Yesterday, 13:26
else if (dtNow.getUTCDate() - someDt.getUTCDate() < 7)
var dateString = Ext.Date.format(someDt, 'l, G:i'); //Sunday, 14:03
} else
var dateString = Ext.Date.format(someDt, 'j.n.y\, G:i'); //7.8.15, 8:25
return dateString;
}
Не беспокойтесь о функции Ext.Date.format()
, это не часть вопроса ,
Проблема с этим кодом в том, что он не может справиться с подобными ситуациями:
Today: 01.08.15
Yesterday: 31.07.15
Любая идея, как я могу сказать функцию для того чтобы справиться с этим, а?
Я не ищу решение с библиотеками exterenal (включая ExtJS). Я хотел бы решить эту проблему с помощью необработанного JavaScript.
Есть ли какая-либо конкретная причина, по которой вы хотите изобрести колесо? – nfechner