gpt4 book ai didi

javascript - 计算 Javascript 中 2 个 SQLite 日期时间之间的差异

转载 作者:行者123 更新时间:2023-11-29 18:26:18 30 4
gpt4 key购买 nike

我有一个 startDate 和一个 endDate 存储在 SQLite 数据库中,需要使用 javascript 计算两个日期时间之间的分钟和秒差。

例如:

startDate = 2012-10-07 11:01:13
endDate = 2012-10-07 12:42:13

虽然我在 SO 上阅读了大量类似的问题,但只能找到与计算相关的内容作为选择的一部分。

最佳答案

将字符串转换为 JS Date 对象,减去日期,并使用一些算术从结果中计算小时/秒。像这样的东西:

function convertMS(ms) {
var d, h, m, s, ts, tm, th;
s = ts = Math.floor(ms / 1000);
m = tm = Math.floor(s / 60);
s = s % 60;
h = th = Math.floor(m / 60);
m = m % 60;
d = Math.floor(h / 24);
h = h % 24;
return { d: d, h: h, m: m, s: s, tm: tm, th: th, ts: ts};
};
var start = new Date('2012-10-07 11:01:13'.split('-').join('/'))
,end = new Date('2012-10-07 12:42:13'.split('-').join('/'))
,dif = convertMS(end - start);
console.log(dif.h+':'+dif.m);​​​​​​ //=> ​1:41
console.log('total minutes dif: '+dif.tm);​​​​​​ //=> total ​minutes dif: 101
console.log('total seconds dif: '+dif.ts);​​​​​​ //=> ​total seconds dif: 6060

[根据评论编辑]
以提供的格式“手动”解析日期字符串:

Date.tryParse = function(ds){
var arr = ds.match(/\d+/g)
,err = 'Expected at least yyyy'
,dat = arr.length && String(arr[0]).length === 4
? doParse.apply(null,arr) : err;
return dat;

function doParse(y,m,d,h,mi,s,ms){
var dat = new Date(+y,(+m-1)||0,+d||1,+h||0,+mi||0,+s||0,+ms||0);
return isNaN(dat) ? new Date : dat;
}
}
var start = Date.tryParse('2012-10-07 11:01:13'); //=> Sun Oct 07 2012 11:01:13
var test = Date.tryParse('2009'); //=> Sun Jan 01 2009 00:00:00

关于javascript - 计算 Javascript 中 2 个 SQLite 日期时间之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12768519/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com