javascript - javascript如何通过使用时间减去两个日期来获取总的小时数?

  显示原文与译文双语对照的内容
149 4

我得减去两天,才能得到总的时间。

let date1 = moment.tz(new Date(),"YYYY-MM-DDTHH:mm:ss","America/Chicago").local().format('MM/DD/YYYY h:mm A');
let date2 = moment.tz(titleDate,"YYYY-MM-DDTHH:mm:ss","America/Chicago").local().format('MM/DD/YYYY h:mm A');
let getHours = date1.diff(date2, 'hours') 

我需要这样的总时间。解决这里问题的任何方法?

时间:原作者:0个回答

65 1

format 函数返回一个字符串。因此,在代码中,date1date2 是字符串,而不是 momentjs datetime值。删除对 format()的调用。

原作者:
92 4

你也可以用

let date1 = moment.tz(new Date(),"YYYY-MM-DDTHH:mm:ss","America/Chicago").local();
let date2 = moment.tz(titleDate,"YYYY-MM-DDTHH:mm:ss","America/Chicago").local();
var x = moment.duration(date1.diff(date2)).asHours();

来自文档

原作者:
127 0

格式化后,date1没有diff方法,它是字符串。你可以删除格式。

let date1 = moment.tz(new Date(),"YYYY-MM-DDTHH:mm:ss","America/Chicago").local();
let date2 = moment.tz(titleDate,"YYYY-MM-DDTHH:mm:ss","America/Chicago").local();
let getHours = date1.diff(date2, 'hours');

或者如果date1和date2位于同一时区:

let date1 = moment();
let date2 = moment(titleDate);
let getHours = date1.diff(date2, 'hours');

或者

date1.diff(date2)/1000/60/60;

date1.diff(date2) 返回毫秒。

原作者:
77 0

尝试这个:

var titleDate = new Date(2018, 11, 24, 10, 33, 30);
var originalDate1 = moment.tz(new Date(),"YYYY-MM-DDTHH:mm:ss","America/Chicago").local();
var date1 = originalDate1.format('MM/DD/YYYY h:mm A');
var originalDate2 = moment.tz(titleDate,"YYYY-MM-DDTHH:mm:ss","America/Chicago").local();
var date2 = originalDate2.format('MM/DD/YYYY h:mm A');
console.log(date1+"n"+date2);
var duration = moment.duration(originalDate2.diff(originalDate1));//myMoment.diff(now, 'days', true);
var hoursDuration = duration.asHours();
console.log(hoursDuration);
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js"></script>
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.21/moment-timezone-with-data-2012-2022.js"></script>
原作者:
...