我有一个字符串,它表示像这样的项目的到期:2020-10-31T21:30:11
,我有一个函数来计算距离这个日期还剩多少天(如下)。
但是,在 IE8 中它不起作用。我想这是因为timeEnd
正在回归NaN
。有人可以解释为什么这不起作用并指出我正确的方向吗?
这是我的代码片段:
HTML
<span class="days-left" data-publishend="2020-10-31T21:30:11"></span>
JS
$('.days-left').each(function () {
if ($(this).data("publishend")) {
var timeEnd = new Date($(this).data("publishend")), // returns NaN in IE8
timeNow = new Date(),
oneDay = 24*60*60*1000,
oneHour = 60*60*1000,
oneMin = 60*1000,
daysLeft = Math.floor(Math.abs(timeEnd.getTime() - timeNow.getTime()) / oneDay),
hoursLeft = Math.floor(Math.abs(timeEnd.getTime() - timeNow.getTime()) / oneHour),
minsLeft = Math.floor(Math.abs(timeEnd.getTime() - timeNow.getTime()) / oneMin),
string;
if (daysLeft < 1) {
if (hoursLeft < 1.5) {
string = minsLeft + ' minutes';
} else {
string = hoursLeft + ' hours left';
}
}
if (daysLeft === 1) string = '1 day left';
if (daysLeft > 1) string = daysLeft + ' days left';
$(this).text(string);
}
});