通過時(shí)間戳計(jì)算本地當(dāng)天時(shí)間戳

時(shí)間戳

指格林威治時(shí)間1970年01月01日00時(shí)00分00秒(北京時(shí)間1970年01月01日08時(shí)00分00秒)起至現(xiàn)在的總秒數(shù)。通俗的講, 時(shí)間戳是一份能夠表示一份數(shù)據(jù)在一個特定時(shí)間點(diǎn)已經(jīng)存在的完整的可驗(yàn)證的數(shù)據(jù)。

時(shí)區(qū)

由于世界各國家與地區(qū)經(jīng)度不同,地方時(shí)也有所不同,因此會劃分為不同的時(shí)區(qū)。正式的時(shí)區(qū)劃分,其中包括24個時(shí)區(qū),每一時(shí)區(qū)由一個英文字母表示。同一時(shí)刻,各個地區(qū)的本地時(shí)間是不同的。

總結(jié)

不同的時(shí)區(qū)時(shí)間不同,但時(shí)間戳具有時(shí)區(qū)無關(guān)性,這時(shí)候就需要涉及到轉(zhuǎn)換到當(dāng)?shù)貢r(shí)間格式,以及當(dāng)?shù)貢r(shí)區(qū)哪一天等

以下計(jì)算某個時(shí)間戳的本地當(dāng)天時(shí)間(秒),時(shí)間戳是根據(jù)0時(shí)區(qū)為基準(zhǔn)的,所以計(jì)算n時(shí)區(qū)當(dāng)天開始時(shí)間,需要加上n * 3600,最后計(jì)算到天數(shù)后還需要減去n * 3600

function getLocalDaySecord(time, timezone) {
    const day = Math.floor((time + timezone * 3600) / (24 * 3600));
    const sec = day * 24 * 3600 - timezone * 3600;
    return sec;
}

獲取某個時(shí)區(qū)的日期: 20200101010101

const TIMEZONE = -new Date().getTimezoneOffset() / 60; //本地時(shí)區(qū)
function getLocalDateString(time, timezone) {
    let offset = 0;
    if (timezone !== undefined) {
        offset = (timezone - TIMEZONE) * 3600 * 1000;
    }
    if (time === undefined) {
        time = Date.now();
    }
    const date = new Date(time + offset);
    const year = date.getFullYear(); //年
    const month = date.getMonth() + 1; //天
    const day = date.getDate(); //day-of-the-month
    //  var days = date.getDay(); //day-of-the-weak
    const hours = date.getHours(); //小時(shí)
    const minutes = date.getMinutes(); //分鐘
    const seconds = date.getSeconds(); //秒
    //const ms = date.getMilliseconds();//毫秒
    const d1 = year * 10000 + month * 100 + day;
    const d2 = hours * 10000 + minutes * 100 + seconds;
    return d1 + '' + d2;
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容