我需要在图书馆卡即将到期或已过期时提醒顾客。他们看到的页面始终以这种格式显示其截止日期:
EXP DATE: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.');
答案 0 :(得分:2)
基本上,您只需要从元素的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
}
这应该让你开始。
答案 1 :(得分:0)
有一种更简单的方式来获取您的到期日期。 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