我知道这个帖子:Elegantly check if a given date is yesterday
但我只是特别寻找JavaScript的解决方案,如果可能的话,需要一个简短的解决方案。我无法想出一个100%可靠的方法…
不用担心
这段代码的问题在于它无法处理以下情况:
但我只是特别寻找JavaScript的解决方案,如果可能的话,需要一个简短的解决方案。我无法想出一个100%可靠的方法…
目前我的做法是:
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
你有什么想法可以让该函数也处理这个问题吗?
我不想使用外部库来解决这个问题(包括ExtJS)。我希望用原始的JavaScript来解决。