我目前有两个变量:
appointment_date
和appointment_time
分别采用dd/mm/yyyy
和(h)h:mm
格式。
时间是12小时格式但是在12PM之前的时间没有零填充,因为我从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_date
和appointment_time
创建新日期对象的最佳方法,同时要记住某些时间也需要填充为零。
我考虑过尝试使用/
将日期中的,
替换为:
,将,
替换为,
,并将{{1}}加入{{1}}介于两者之间,但我希望这会是一个更优雅的解决方案吗?
答案 0 :(得分:4)
只需将appointment_date
字符串拆分为三个部分(例如split('/')
),将这些部分转换为数字,对appointment_time
(split(':')
)执行相同操作,记得从月份值中减去一个(月份从零开始),并将这些数字传递到Date
constructor。