繁体   English   中英

将jQuery中的日期与不同格式匹配

[英]Match the dates in jQuery with different formats

我在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");
}

我在div中提供了这样的日期和时间

 <div id="count-down" data-date="2016-08-31 14:21:00"> </div> 

data-属性中的字符串与ECMA-262中指定的格式不一致(缺少日期和时间之间的“ T”分隔符),因此您应该通过编写解析函数或使用库来手动解析它。提供要解析的格式。

如果使用Date构造函数(或Date.parse,它们等效于解析)来解析字符串,则可能会得到无效的日期(例如,在Safari中, new Date('2016-01-01 12:00:00')产生无效的日期),因为非标准字符串的解析完全取决于实现。

有很多合适的库,一些建议:

  1. moment.js进行解析,格式化,时区和算术运算,并具有CDN
  2. fecha.js只是进行解析和格式化,因此它比moment.js小得多。

创建Date对象时,它仅具有一个内部值(称为时间值),该内部值自1970-01-01T00:00:00Z(javascript时期,与UNIX时期相同)以来的毫秒数。 当您调用toString方法时,结果是实现依赖的字符串在实现之间有所不同(在您的情况下,您会看到类似“ 2016年8月31日星期三14:34:58 GMT + 0500(巴基斯坦标准时间)”的信息,可能会使用不同的实现产生其他东西。

我将如何与当前日期匹配或比较,因为我正在以这种格式获取当前日期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
}

请注意,由于字符串中没有提供要解析的时区信息,因此将其视为“本地”日期和时间,并且主机系统的当前设置用于确定与UTC的偏移量,然后在计算时间值时使用该偏移量。 使用默认的toString方法从Date生成本地日期和时间字符串时,同一系统会反向工作。

也:

currentDate.getDate()

只是将日期(即月份中的日期)返回为不含年份和月份的数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM