Javascript 这些VAR是否正确转换为日期以用于计算预订价格?

Javascript 这些VAR是否正确转换为日期以用于计算预订价格?,javascript,date,datetime,type-conversion,var,Javascript,Date,Datetime,Type Conversion,Var,在JavaScript中,我有两个变量(aankomstDatum和vertrekDatum),其中包含签入日期和“dd-mm-yy”格式的签出日期。这些变量来自带有jQuery日期选择器的文本输入字段 我想根据aankomstDatum和vertrekDatum计算住宿价格,所以我仍然需要将VAR转换为日期,这是正确的吗?我从年月日开始使用以下代码: var parts = aankomstDatum.split('-'); var aankomstDatumDate = new Date(p

在JavaScript中,我有两个变量(aankomstDatum和vertrekDatum),其中包含签入日期和“dd-mm-yy”格式的签出日期。这些变量来自带有jQuery日期选择器的文本输入字段

我想根据aankomstDatum和vertrekDatum计算住宿价格,所以我仍然需要将VAR转换为日期,这是正确的吗?我从年月日开始使用以下代码:

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) 输出日期2017年11月11日星期六00:00:00 GMT+0100(浪漫标准时间)是否可以用于计算预订价格?还是以“dd-mm-yy”这样的格式出现更好?如果是这样,我该如何实现这一目标?

回答您的两个问题:

  • 是的,这个思路是正确的——您希望将字符串转换为
    Date
    对象,以便对这些日期执行操作
  • 如果您计划在日期上使用某种算法,您可能希望在这些日期上使用
    getTime()
    ,它以毫秒为单位返回日期 例如,如果要计算用户签入的天数(checkoutDate-checkinDate),可以使用此函数,它接受两个日期对象:

    函数日期差异(日期1、日期2){
    让diff=date2.getTime()-date1.getTime();
    返回Math.round(diff/(1000*60*60*24));//除以一天中的毫秒数
    }
    //范例
    var date1=新日期();//今天
    var date2=新日期();
    //添加5天到日期2
    date2.setDate(date2.getDate()+5);
    var daysCheckedIn=日差(日期1,日期2);
    
    log(“用户签入:“+daysCheckedIn+”days.”)谢谢,这个信息对我帮助很大!但是价格取决于月份,所以在毫秒内我会丢失这些信息?标题中问题的答案是“否”。假设输入格式为dd-mm-yy,则
    新日期(部分[2],部分[0]-1,部分[1])
    应为
    新日期(部分[2],部分[1]-1,部分[0])
    (即,将月份和日期进行了转换)。此外,使用两位数的年份也不是一个好主意。鉴于OP中的信息,我认为不可能回答其他两个问题。看见