簡體   English   中英

如何使用datejs計算大於24小時的小時數

[英]How to calculate hours greater than 24h using datejs

在表中,我有字段類型 TIME,我在其中存儲時間間隔,例如 92:30:00,我試圖用 javascript (datejs) 做的是添加或刪除例如 02:15:00 到/從 92:30:00 .

當小時數不大於 23:59 時我可以執行此操作,但是當值超過 23:59 時如何執行此操作?

grab a from db //as 92:30
var b = Date.parse(a);
var c = Date.parse("02:15");

    d= new TimeSpan(b-c);
    e= (b).addHours(c);

console.log(d.toString("HH:mm")
console.log(e.toString("HH:mm")

我很傷心它有效如果您保持在 24 小時的時間范圍內,是否有可能以更大的時間間隔來做同樣的事情?

更新:(求和)

t = Date.today();
cc = Date.parse(c);
dd = Date.parse(d);

ccc = (cc - t)
ddd = (dd - t);

res = new TimeSpan(ccc+ddd);
console.log(res.toString()); //3.22:45:00

不錯的嘗試,但您忘記了日期實際上是 1970 年 1 月 1 日(我認為)。 因此,您需要考慮到這一點來進行日期算術。

我認為 Datejs 不會正確解析 >24 小時的時間值。 我能想到的最簡單的解決方法就是將字符串拆分成各個部分並添加到Date.today()

這是演示整個場景的示例。

例子

var a = '92:30'.split(':');
var b = '02:15'.split(':');

var c = Date.today().addHours(+a[0]).addMinutes(+a[1]);
var d = Date.today().addHours(+b[0]).addMinutes(+b[1]);

var e = new TimeSpan(c - d);

console.log('days', e.days);  // 3
console.log('hours', e.hours);  // 18
console.log('minutes', e.minutes);  // 15

我不是 100% 你想要的最終結果,但是一旦你有了e TimeSpan,你就有了減去兩個原始值的乘積。

希望這可以幫助。

編輯:如果您只想對值進行簡單的數學運算來計算小時值,則以下應該有效。

例子

var a = '92:30'.split(':');
var b = '02:15'.split(':');

var c = Date.today().addHours(+a[0]).addMinutes(+a[1]);
var d = Date.today().addHours(+b[0]).addMinutes(+b[1]);

var diff = (c - d) / (1000 * 60 * 60);

console.log(diff); // 90.25

不過,您不應該要求 Datejs 執行此操作。 只需要使用原生 JavaScript Date API 就足夠了,你可以從上面的示例中刪除任何 Datejs API。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM