这些变量是否已正确转换为最新日期以用于计算预订价格?
Are these vars converted to date correctly to use them for booking price calculations?
在 JavaScript 中,我有两个包含 "dd-mm-yy" 格式的签入日期和签出日期的变量(aankomstDatum 和 vertrekDatum)。这些变量来自带有 jQuery 日期选择器的文本输入字段。
我想根据 aankomstDatum 和 vertrekDatum 计算住宿价格,所以我仍然必须将 vars 转换为日期是正确的吗?我使用以下代码从 dd-mm-yy 开始:
var parts = aankomstDatum.split('-');
var aankomstDatumDate = new Date(parts[2],parts[0]-1,parts[1]);
document.getElementById("aankomstDate").innerHTML = aankomstDatumDate;
当我输出 aankomstDatumDate 时,我得到以下格式的工作日期:2017 年 11 月 11 日星期六 00:00:00 GMT+0100(浪漫标准时间)。
我的两个问题:
1) 这一步有必要吗?我的思路是否正确,我从日期开始,然后先将它们转换为日期,然后才能使用它们来计算预订价格?
2) 输出日期 Sat Nov 11 2017 00:00:00 GMT+0100(浪漫标准时间)可以用来计算预订价格吗?还是采用 "dd-mm-yy" 这样的格式更好?如果是这样,我该如何实现?
回答你的两个问题:
- 是的,这个思路是正确的——您想将字符串转换为
Date
对象,以便您可以对这些日期进行操作。
- 如果您计划在日期上使用某种算法,您可能希望在这些日期上使用
getTime()
,returns Unix Time 中的日期(毫秒) .
例如,如果您想计算用户签到的天数 (checkoutDate - checkinDate),您可以使用这个函数,它接受两个日期对象:
function daysDifference(date1, date2) {
let diff = date2.getTime() - date1.getTime();
return Math.round(diff / (1000*60*60*24)); // divide by number of milliseconds in a day
}
// Example
var date1 = new Date(); // today
var date2 = new Date();
// add 5 days to date2
date2.setDate(date2.getDate() + 5);
var daysCheckedIn = daysDifference(date1, date2);
console.log("User checked in for: " + daysCheckedIn + " days.");
在 JavaScript 中,我有两个包含 "dd-mm-yy" 格式的签入日期和签出日期的变量(aankomstDatum 和 vertrekDatum)。这些变量来自带有 jQuery 日期选择器的文本输入字段。
我想根据 aankomstDatum 和 vertrekDatum 计算住宿价格,所以我仍然必须将 vars 转换为日期是正确的吗?我使用以下代码从 dd-mm-yy 开始:
var parts = aankomstDatum.split('-');
var aankomstDatumDate = new Date(parts[2],parts[0]-1,parts[1]);
document.getElementById("aankomstDate").innerHTML = aankomstDatumDate;
当我输出 aankomstDatumDate 时,我得到以下格式的工作日期:2017 年 11 月 11 日星期六 00:00:00 GMT+0100(浪漫标准时间)。
我的两个问题:
1) 这一步有必要吗?我的思路是否正确,我从日期开始,然后先将它们转换为日期,然后才能使用它们来计算预订价格?
2) 输出日期 Sat Nov 11 2017 00:00:00 GMT+0100(浪漫标准时间)可以用来计算预订价格吗?还是采用 "dd-mm-yy" 这样的格式更好?如果是这样,我该如何实现?
回答你的两个问题:
- 是的,这个思路是正确的——您想将字符串转换为
Date
对象,以便您可以对这些日期进行操作。 - 如果您计划在日期上使用某种算法,您可能希望在这些日期上使用
getTime()
,returns Unix Time 中的日期(毫秒) .
例如,如果您想计算用户签到的天数 (checkoutDate - checkinDate),您可以使用这个函数,它接受两个日期对象:
function daysDifference(date1, date2) {
let diff = date2.getTime() - date1.getTime();
return Math.round(diff / (1000*60*60*24)); // divide by number of milliseconds in a day
}
// Example
var date1 = new Date(); // today
var date2 = new Date();
// add 5 days to date2
date2.setDate(date2.getDate() + 5);
var daysCheckedIn = daysDifference(date1, date2);
console.log("User checked in for: " + daysCheckedIn + " days.");