【问题标题】:in javascript to get some date with hours added在 javascript 中获取添加小时数的日期
【发布时间】:2014-11-28 09:11:47
【问题描述】:

我需要在 javascript 中获取一些日期并添加一些时间。 如果要分配:

start_date_time= selectedAppointmentDate

然后更改 start_date_time var 然后 selectedAppointmentDate var 也被更改,这不是我需要的。

我试着做一些常见的功能,比如

var start_date_time = getDate(selectedAppointmentDate, start_hour, start_minute )  

function getDate(dat, addHours, addMinutes, addSeconds ) {
    if ( !(dat instanceof Date) ) {
        dat= new Date();
    }
    var retDate= Date( dat.getFullYear(), dat.getMonth() , dat.getDate()  );
    alert( "retDate::"+retDate)  // It shows valid date value like "retDate::Fri Nov 28 2014 11:08:03 GMT+0200"

    if ( addHours != '' && addHours!= null && typeof addHours != "undefined") {
        retDate.addHours(addHours) // But on this line I got error in console : "TypeError: retDate.addHours is not a function"
    }
}

哪种方法是正确的?

谢谢!

【问题讨论】:

  • 提示:当你搜索“mdn ”时,谷歌会直接指向MDN documentation page。没有addHours 这样的东西。试试setHours(getHours + x)

标签: javascript datetime


【解决方案1】:
var date = new Date(); //AppointmentDate or date string in case of value retrieved from dom
var dateTime = setTimeToDate(date, 1, 2, 3);//pass h=m=s=0 for date part only
function setTimeToDate(date, h, m, s) {
    var newDate;
    if(isNaN(Date.parse(date))) {//instanceof Date = false if you read the value from DOM(i.e string)
        newDate = new Date();
    } else {
        newDate = new Date(date);
    }
    if(!isNaN(h)) {
        newDate.setHours(h);
    }
    if(!isNaN(m) !== NaN) {
        newDate.setMinutes(h);
    }
    if(!isNaN(s) !== NaN) {
        newDate.setSeconds(h);
    }
    return newDate;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    相关资源
    最近更新 更多