0

我目前有两个变量:

appointment_date并且appointment_time分别是格式dd/mm/yyyy(h)h:mm

时间是 12 小时格式,但在下午 12 点之前的时间没有零填充,因为我从 DOM 中获取这些值,这就是它的呈现方式。

我正在尝试将当前日期和时间与这两个值进行比较,以计算时差是否小于 24 小时,我可以使用以下硬编码的日期对象来做到这一点:

var todays_date = new Date(2013, 04, 19, 15, 40, 0);
var appointment_date = new Date(2013, 04, 20, 15, 30, 0);

todays_date = todays_date.getTime();
appointment_date = appointment_date.getTime();

if ((appointment_date - todays_date) >  86400000) { // number of milliseconds in a day
    // proceed 
} else {
    alert('less than 24 hours');
}

我可以通过做从今天的日期制作一个日期时间对象

var todays_date = new Date();

但我不知道从appointment_dateand创建新日期对象的最佳方法appointment_time,请记住某些时间也需要补零。

我考虑尝试用 a 替换/in 日期,:in 时间,,并在两者之间加入 a ,,但我希望这将是一个更优雅的解决方案?

4

1 回答 1

4

只需将appointment_date字符串分成三个部分(split('/')例如 ),将这些部分转换为数字,对appointment_time( split(':')) 执行相同操作,记住从月份值中减去 1(月份从零开始),然后将这些数字传递给Date构造函数

于 2013-05-09T08:48:22.707 回答