Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何计算两个不同日期的24小时格式时间之间的差异?_Javascript_Google Apps Script - Fatal编程技术网

Javascript 我如何计算两个不同日期的24小时格式时间之间的差异?

Javascript 我如何计算两个不同日期的24小时格式时间之间的差异?,javascript,google-apps-script,Javascript,Google Apps Script,在JavaScript中,我如何计算24小时格式的两个日期不同的时间之间的差异 例如: 日期1为2019/12/31上午11:00:06 日期2是2020/01/01:10:07下午。 时间差应为02:10:13,格式为hh:MM:ss …当appscript中的日期发生变化时,怎么会出现这种情况呢?只需使用日期 const dateDiffMs = (date1,date2 ) => { const d1 = new Date(date1); const d2 = new

在JavaScript中,我如何计算24小时格式的两个日期不同的时间之间的差异

例如: 日期1为2019/12/31上午11:00:06 日期2是2020/01/01:10:07下午。 时间差应为02:10:13,格式为hh:MM:ss
…当appscript中的日期发生变化时,怎么会出现这种情况呢?只需使用日期

const dateDiffMs = (date1,date2 ) => {
    const d1 = new Date(date1);
    const d2 = new Date(date2);
    return d1.getTime() - d2.getTime()
}

const ms2hms = (ms) => {
    const sec = Math.floor(ms / 1000)
    const min = Math.floor(sec / 60)
    const h = Math.floor(min / 60)

    return [
        h,
        min % 60,
        sec % 60,
    ];
};

const format = (n) => n < 10 ? '0' + n : n;

const hms2str = ([h, min, sec]) => {
    return `${h}:${format(min)}:${format(sec)}`
}

alert(hms2str(ms2hms(dateDiffMs('2020/01/01 01:10:07 PM', '2019/12/31 11:00:06 AM')))); // 26:10:01
const dateDiffMs=(date1,date2)=>{
常数d1=新日期(日期1);
const d2=新日期(日期2);
返回d1.getTime()-d2.getTime()
}
常量ms2hms=(毫秒)=>{
常数秒=数学楼层(ms/1000)
最小常数=数学层(第60节)
常数h=数学楼层(最小值/60)
返回[
H
最小值%60,
第60节,
];
};
常量格式=(n)=>n<10?'0'+n:n;
常量hms2str=([h,min,sec])=>{
返回`${h}:${format(min)}:${format(sec)}`
}
警报(hms2str(ms2hms(dateDiffMs('2020/01/01 01:10:07 PM','2019/12/31 11:00:06 AM'));//26:10:01

如果date1和date2位于同一时区,则此代码可以正常工作。但是我建议你使用moment.js或其他一些库

我会以秒为单位收集日期,因为在70年代的某个时候,每当计算机决定为我们记录时间时。然后将第二个值传递给它并减去,留下差值

然后,您需要将其转换回日期格式,我认为:

(函数(){
var dateOneSeconds=new Date().getTime()/1000;
setTimeout(函数(){
var dateTwoSeconds=new Date().getTime()/1000;
var seconds=dateTwoSeconds-dateOneSeconds;
console.log(秒);
var timedifferenceinandate=新日期(秒*1000).toISOString().substr(11,8);
console.log(时差数据);
}, 3000);

})();您使用日期时间库,而不是试图自己解决问题。因为你给出的差异是完全不正确的,因为你忘了指出所涉及的时区。这是否回答了你的问题@异端猴子。。。。我想得到两个不同日期中两次之间的时差…您的解决方案在同一天中得到两次不同的时间计算两个日期之间的时差(以毫秒为单位)并计算年数月数小时分秒it@VincentB关于堆栈溢出,有数千个关于日期的问题。挑一个。也许吧。OP想要HH:MM:SS格式的差异。您的解决方案将只提供时间间隔毫秒。我建议您加强您的回答如果日期差异大于24小时,则看起来不正确感谢您指出,我已更改我的回答以反映天数,如果您能确认它在几天内有效。。。