【问题标题】:Find HTML Date then Compare to Current Dat查找 HTML 日期,然后与当前日期进行比较
【发布时间】:2011-11-21 08:00:49
【问题描述】:

当借书证即将到期或已过期时,我需要提醒读者。他们看到的页面总是以这种格式显示他们的到期日期:

发布日期:10-08-2011

EXP DATE:mm-dd-yyyy

首先,我需要获取该日期并将其与今天的日期进行比较。然后我需要以某种方式提醒顾客他们的卡将在 30 天内到期,或者让他们知道他们的卡已经过期。

如何从字符串中获取该日期? 我如何将其与今天的日期进行比较? 如何在未来和过去不到 30 天之间进行比较? 如何为每个场景创建警报?

我不是在寻找一个完整的解决方案,只是为了指出正确的方向。

非常感谢任何帮助,

紧缩

这就是我最终为日期拆分和比较所做的事情。作为一个完全的新手,它更容易概念化。但是,请随时提供建议和更简洁的方法来执行此操作......现在我只需要弄清楚如何从 html 中“获取”日期。

感谢您的帮助!

紧缩

//below split date on hyphens

var s = '10-3-2011';
var fields = s.split(/-/);
var month = fields[0];
var day = fields[1];
var year = fields[2];

//below replace hyphens with slashes
var slashDate = (month + "/" + day + "/" + year)

// below convert string to date
var patexpDate = new Date(slashDate);

//below get todays date
var todaysDate = new Date();

//below patron expiration date minus todays date
var diffDates = (patexpDate - todaysDate)


if (diffDates >= 0 && diffDates <= 2592000000) {
alert('Your Library card expires in less than 30 days.');

}

else if (diffDates < 0) {
alert("Your Library card has expired.");

}

else alert('Card NOT expired.');

【问题讨论】:

标签: javascript jquery


【解决方案1】:

基本上,您只需要从元素的 HTML 中获取日期组件。

 var dateString = someElement.innerHTML;

然后,通过分隔符将其拆分并拉出每个组件:

 var components = dateString.split('-');

 var day = components[1];
 var month = components[0];
 var year = components[2];

然后,使用该数据创建一个新的 Date 对象:

 var expirationDate = new Date(day, (month - 1), year); 
 // Remember, JavaScript uses 0-11 to represent months!

然后,获取当前日期,然后执行一些简单的数学运算来确定日期范围:

 var now = new Date();

 if(now.getTime() >= expirationDate.getTime())
 {
     // Exp Date is in the past
 }
 else
 {
     // Exp date in the future
 }

这应该让你开始。

【讨论】:

    【解决方案2】:

    有一种更简单的方法来获取您的到期日期。 Javascript 允许您通过传入字符串变量来构造日期。所以你可以做这样的事情。

    var exDateString = dateElem.innerHtml, // comes out to your date as a string 10-08-2011
        exDateObj = new Date(exDateString), // gives a data object with your expiration date
        today = new Date();
    

    现在开始,你可以用普通操作员做一个简单的检查,看看它是否过期。

    if (exDateObj >== today) { // if expiration date is greater than or equal to today
        alert('Your card is expired');
    }
    

    不确定获取到期天数的方法,但您可以编写 if/else 语句以了解不同的情况。

    忘记链接了,这是 JavaScript 的 mozilla 开发页面参考日期:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

    【讨论】:

      猜你喜欢
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      相关资源
      最近更新 更多