我有div,我提供这样的日期和时间
<div class="timing">
<div id="count-down" data-date="2016-08-31 14:21:00"> </div>
</div>
我如何与当前日期匹配或比较,因为我以此格式获取当前日期Wed Aug 31 2016 14:34:58 GMT+0500 (Pakistan Standard Time)
如果当前日期大于提供的日期
,我想将网页重定向到新位置var currentDate = new Date();
var providedDate = $('#count-down').attr('data-date')
if (currentDate.getDate().toString > providedDate)
{
window.location.href = 'Promo';
$('.timing').css("display", "none");
$('.website-loading').css("display", "block");
}
答案 0 :(得分:1)
我有div,我提供这样的日期和时间
<div id="count-down" data-date="2016-08-31 14:21:00"> </div>
data - 属性中的字符串与ECMA-262中指定的格式不一致(&#34; T&#34;缺少日期和时间之间的分隔符),所以你应该通过编写解析函数或使用库来手动解析它,并提供要解析的格式。
如果你使用Date构造函数(或Date.parse,它们等同于解析)来解析字符串,你可能会得到一个无效的日期(例如在Safari中,new Date('2016-01-01 12:00:00')
产生一个无效的日期),因为解析非标准字符串完全取决于实现。
有许多合适的图书馆,一些建议:
创建Date对象时,它只有一个内部值(称为时间值),即自1970-01-01T00:00:00Z(javascript epoch,与UNIX纪元相同)后的毫秒数。当您调用 toString 方法时,结果是一个依赖于实现的字符串,它在实现之间有所不同(在您的情况下,您会看到类似&#34; Wed Aug 31 2016 14:34:58 GMT + 0500(巴基斯坦标准时间)&#34;,一个不同的实现可能产生其他东西。
我如何与当前日期匹配或比较,因为我得到了 此格式的当前日期
Wed Aug 31 2016 14:34:58 GMT+0500 (Pakistan Standard Time)
比较日期时,您真的只想比较时间值。如果您使用关系运算符>
或<
进行比较,他们会将日期强制转换为时间值,以便您可以直接比较日期,例如:
var providedDate = fecha.parse($('#count-down').attr('data-date'), 'YYYY-MM-DD HH:mm:ss');
if (Date.now() > providedDate) {
// providedDate is in the past
}
请注意,由于要解析的字符串中没有提供时区信息,因此将其视为&#34; local&#34;日期和时间以及主机系统的当前设置用于确定与UTC的偏移,然后在计算时间值时使用该偏移。当使用默认的 toString 方法从Date生成本地日期和时间字符串时,相同的系统反向工作。
此外:
currentDate.getDate()
只返回日期(即月中的日期)作为没有年份和月份的数字。