簡體   English   中英

使用javascript的時差

[英]Time difference using javascript

什么是使用javascript找到12小時格式的兩個不同時間之間的時差的代碼。 我在動態gridview中使用這兩個時間字段。

 var gridNew = document.getElementById("<%= Gridview1.ClientID %>");
            if (gridNew.rows.length > 0) {
                for (i = 0; i < gridNew.rows.length - 2; i++) {
                    var frombox = document.getElementById("Gridview1_txtFrom_" + (i));
                    var tobox = document.getElementById("Gridview1_txtTo_" + (i));
                      if(frombox.value<=tobox.value){
                        alert("Enter valid time set");
                        return false;

這里'你如何在兩個自定義日期之間獲得毫秒時差。

Math.abs(new Date(firstDateString).getTime() - new Date(secondDateString).getTime());

如果您在解析/轉換為Date遇到問題,請考慮使用date.js或moment.js等庫

隨着時間你可以做這樣的事情:

var diff = moment('3:30','HH:mm').diff(moment('3:20','HH:mm'));

如果你需要上午/下午:

var diff = moment('3:30 pm','HH:mm a').diff(moment('3:20 am','HH:mm a'));

這是jsfiddle

JS中的時代對於處理跨瀏覽器來說可能是一種痛苦,任何不得不調試錯誤的跨瀏覽器行為的人都可以證明這一點。 我學到了比以往任何時候我都想做任何關於JS的日期涉及到moment.js lib。

起初我不情願,因為我認為我可以自己做大部分事情而且自己動手。 這是一支古巴雪茄,沒有多少家用滾動可以涵蓋所有工具的時刻。

我不會告訴你如何解決,只是給你工具......

矩()。DIFF

請享用!

除了說它們是“12hr格式”之外,您還沒有顯示時間格式。 一種算法是解析並將它們轉換為一個公共單位,比如秒,找到差異,然后將其格式化回任何適合的單位。

因此,如果時間是h:m:sa / p格式,如“9:42:15 am”,並且您希望結果采用類似的格式,那么以下函數可能會有所幫助。

 /* Convert time in h:m:sa/p format to seconds ** Seconds component is optional, h:m is OK ** Tolerates space before am/pm, leading and trailing whitespace ** Doesn't validate string ** ** @param {string} s - time to parse ** @returns {number} time converted to seconds. */ function hmsToSeconds(s) { var b = s.match(/\\d+/g); var am = /am\\s*$/i.test(s); return ((b[0] % 12) + (am? 0:12))*3600 + (b[1]*60) + (+b[2]||0); } /* Convert seconds to time in h:mm:ss format ** Maintains sign of input (+/-). ** ** @param {number} s - seconds to convert ** @returns {string} seconds converted to h:mm:ss. */ function secToHMS(s) { function z(n){return (n<10? '0' : '') + n} var sign = s < 0? '-' : ''; s = Math.abs(s); return sign + (s/3600 | 0) + ':' + z((s%3600 / 60 |0)) + ':' + z(s%60); } function getTimeDifference(t0, t1) { return secToHMS(hmsToSeconds(t1) - hmsToSeconds(t0)); } document.write(getTimeDifference('11:32 am','12:38:51pm')); 

試試這個簡單的插件來獲得時差。

https://github.com/gayanSandamal/good-time

將goodTimeDiff方法從good-time.js導入到您的項目中

import {goodTimeDiff} from './scripts/good-time.js'

聲明一個對象以提供如下設置。 設置= {}

現在為聲明的對象變量分配時間值。 *時間必須是標准格式,必須是字符串! * 'from'是可選的,默認值將是瀏覽器當前時間。

let settings = {
    'from': '2019-01-13T00:00:29.251Z',
    'to': '2018-09-22T17:15:29.251Z'
}

現在calllback名為goodTimeDiff()的方法,並將設置對象變量作為參數傳遞。

goodTimeDiff(settings)

最后將方法分配給您想要的任何變量。

let lastCommentedTime = goodTimeDiff(timeSettings)

暫無
暫無

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

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