Javascript: 用另一个固定时间减去时间

Javascript: Subtract time with another fixed time

假设我有以下 24 小时格式的日期和时间。 例子

2015/04/02 12:00
2015/03/02 14:00

我必须用9 hours减去上面的时间,这样我会得到

2015/04/02 -> 3 (hours)
2015/03/02 -> 5 (hours)

HTML

<form name="formName" onsubmit="return checkDate(this)">
        <input type="text"  value="" name="date1" />
        <input type="text" value="" name="date2"/>
        <input type="submit" value="Submit">    
</form>
<p id="demo"></p>

Javascript

function checkDate(theForm)
{
    var a = theForm.date1.value;
    var b = theForm.date2.value;

    var date1 = new Date(a);
    var date2 = new Date(b);

    var dateStart = new Date();
    var dateEnd = new Date();

    dateStart.setHours(9);

    Start_sec =  (date1/ 1000.0) - (dateStart/ 1000.0);
    Start_hours = parseInt(Start_sec / 60 / 60);

    document.getElementById("demo").innerHTML =  Start_hours ;
    return false;
}

如果可以接受使用第三方库,那么您只需使用 moment.js 即可完成此任务。在一行中,您可以使用以下代码完成任务:

moment('2015/04/02 12:00').subtract('hours',9).format('YYYY/MM/DD hh:mm')

//just a number plus the word 'hours'
.format('h [hours]')

//time only
.format('h:mm')

偶尔我会更新这个fiddle我会用更多的例子来维护:http://jsfiddle.net/JamesWClark/9PAFg/

试试下面的代码。

function checkDate(theForm)
{
    var a = theForm.date1.value;
    var b = theForm.date2.value;

    var date1 = new Date(a);
    var date2 = new Date(b);

    date1.setHours(date1.getHours() - 9);
    date2.setHours(date2.getHours() - 9);

    document.getElementById("demo").innerHTML =  "Date 1 : " + date1.toString() + "<br/>Date 2 : " + date2.toString();
    return false;
}

你可以直接减去9小时...:[=​​11=]

var t = new Date(2015,2,3,18);
t.setTime(t - 9*60*60*1000);          //subtract 9 hours
var date = new Date("2015/04/02 12:00");
var out = new Date(date.getTime() - 32400000); //9*60*60*1000