javascript - 将 jQuery 中的日期与不同格式进行匹配

标签 javascript jquery date

我有一个 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(巴基斯坦标准时间)

如果当前日期大于提供的日期,我想将页面重定向到新位置

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

最佳答案

I have div in which I am providing date and time like this

<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 方法时,结果是一个依赖于实现的字符串,该字符串在实现之间有所不同(在您的情况下,您会看到类似“Wed Aug 31 2016 14:34:58 GMT+0500(巴基斯坦标准时间)”的内容)”,不同的实现可能会产生其他结果。

How would I match or compare with current date, because I am getting current date in this format 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 的偏移量,然后在计算时使用该偏移量。时间值(value)。当使用默认的 toString 方法从 Date 生成本地日期和时间字符串时,同一系统的工作原理相反。

另外:

currentDate.getDate()

仅以数字形式返回日期(即月份中的第几天),不带年份和月份。

关于javascript - 将 jQuery 中的日期与不同格式进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39245963/

相关文章:

javascript - 手动更新 dat.gui

javascript - Ajax加载网页有矛盾的两种情况

javascript - 在 jQuery 中分割项目

java - 如何获取两个日历实例之间的天数?

mysql - WHERE 子句获取(可能)跨越新一天的事件

javascript - 非官方 SDK - 在充电时访问 Sphero?

javascript - 具有多个变量的 React JS 单选按钮组

javascript - getScript 函数不工作 - jquery

javascript - Meteor.call(...) 导致刷新页面

c++ - tizen 中的 unix 日期转换