JS生成時間戳的全面解析

時間戳,通俗來說就是記錄某個事件發生時的時間,以數字方式表示。在前端開發中,我們經常需要獲取當前時間戳或將普通時間格式轉化成時間戳格式。JS作為一門重要的前端語言,在這個方面也有着強大的表現能力。

一、JS獲取當前時間戳

獲取當前時間戳可以使用JS內置對象Date,其getTime()方法可以返回距離1970年1月1日00:00:00 UTC(國際協調時間)的毫秒數,除以1000即可得到當前時間戳。


const timestamp = Math.floor(Date.now() / 1000);
console.log(timestamp);

以上代碼中,Math對象中的floor()方法用於向下取整,確保時間戳為整數。

二、JS將普通時間格式轉成時間戳

將普通時間格式轉換成時間戳也可以使用Date對象的相關方法。我們可以首先將時間格式轉換成Date對象,然後再調用getTime()方法即可得到對應時間的時間戳。

以下是一個將普通時間格式(如”2019-07-01 00:00:00″)轉換成時間戳的示例:


const dateStr = '2019-07-01 00:00:00';
const timestamp = Math.floor(new Date(dateStr).getTime() / 1000);
console.log(timestamp);

三、JS對時間戳進行格式化展示

方式1:手寫方法實現格式化

手寫方法實現的方式一般可以通過自定義函數來實現。下面我們將時間戳轉換成”YYYY-MM-DD hh:mm:ss”的格式:


function formatTimestamp(timestamp) {
  const dateObj = new Date(timestamp * 1000);
  const year = dateObj.getFullYear();
  const month = (`0${dateObj.getMonth() + 1}`).slice(-2);
  const day = (`0${dateObj.getDate()}`).slice(-2);
  const hours = (`0${dateObj.getHours()}`).slice(-2);
  const minutes = (`0${dateObj.getMinutes()}`).slice(-2);
  const seconds = (`0${dateObj.getSeconds()}`).slice(-2);
  return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}

const timestamp = 1561939200;
console.log(formatTimestamp(timestamp));

以上代碼中,我們首先通過new Date()方法將時間戳轉換成Date對象,然後使用Date對象自帶的方法獲取對應的年、月、日、時、分、秒,最後再使用字符串模板的方式生成格式化後的時間字符串。

方式2:使用第三方庫moment.js實現格式化

moment.js是一個時間處理的優秀庫,非常受前端開發者的喜歡。它不僅可以格式化時間,還可以進行各種時間的計算和顯示。

要使用moment.js進行時間格式化,需要先使用npm或者直接引入moment.js庫。下面是一個使用moment.js將時間戳轉化成”YYYY-MM-DD hh:mm:ss”格式的示例:


import moment from 'moment';

const timestamp = 1561939200;
console.log(moment(timestamp * 1000).format('YYYY-MM-DD hh:mm:ss'));

四、JS實現倒計時功能

倒計時功能在各種場景下都有非常廣泛的使用。直接使用Date對象和setInterval()函數即可輕鬆實現倒計時功能。以下是一個從當前時間開始倒計時10秒的示例:


function countDown(second) {
  let remain = second;
  const timer = setInterval(function() {
    if (remain <= 0) {
      clearInterval(timer);
      console.log('倒計時結束!');
    } else {
      console.log(`距離倒計時結束還剩${remain}秒!`);
      remain--;
    }
  }, 1000);
}

countDown(10);

以上代碼中,我們定義了一個countDown()函數,傳入倒計時時長(單位為秒),然後在定時器中每秒更新剩餘時間,當剩餘時間為0時,清除定時器並輸出提示信息。

五、JS實現時間戳與Date對象的轉換

時間戳與Date對象之間的相互轉換也是前端開發中非常常見的需求。以下是一個將時間戳轉換成Date對象以及將Date對象轉換成時間戳的示例:


function timestampToDate(timestamp) {
  return new Date(timestamp * 1000);
}

function dateToTimestamp(dateObj) {
  return Math.floor(dateObj.getTime() / 1000);
}

const timestamp = 1561939200;
const dateObj = timestampToDate(timestamp);
console.log(dateObj);
console.log(dateToTimestamp(dateObj));

以上代碼中,我們分別定義了兩個函數,其中timestampToDate()函數將時間戳轉換成Date對象,dateToTimestamp()函數將Date對象轉換成時間戳。使用時只需傳入對應的參數即可。

六、JS實現延時執行功能

在前端開發中,我們常常需要需要實現某個操作的延時執行,這時候可以使用JS內置函數setTimeout()來實現。以下是一個延時3秒後彈出提示框的示例:


setTimeout(function() {
  alert('3秒之後彈出提示框!');
}, 3000);

以上代碼中,我們使用setTimeout()函數實現了一個延時3秒後執行的操作。該函數接收兩個參數,第一個參數是要執行的函數(可以使用匿名函數),第二個參數是延遲的毫秒數。

七、JS實現定時執行功能

與setTimeout()函數類似,JS還提供了一個函數setInterval()可以實現定時執行某個函數。

以下是一個每隔1秒鐘就執行一次的定時器示例:


setInterval(function() {
  console.log('每隔1秒鐘就會執行一次!');
}, 1000);

以上代碼中,我們使用setInterval()函數實現了一個每隔1秒鐘執行一次的操作。該函數也接收兩個參數,第一個參數是要執行的函數(可以使用匿名函數),第二個參數是間隔的毫秒數。

八、JS生成指定區間範圍內的隨機數

在前端開發中,生成指定區間範圍內的隨機數也是非常常見的需求。可以使用Math對象的相關函數輕鬆實現。

以下是一個生成1~10之間的隨機整數的示例:


const randomNum = Math.floor(Math.random() * 10) + 1;
console.log(randomNum);

以上代碼中,我們使用Math.random()函數獲取0~1之間的隨機數,使用Math.floor()函數向下取整,將小數位去除,並加1保證生成的是1~10之間的整數。

九、JS實現時間日期的加減運算

在日期和時間的處理中,加減運算也是日常開發中常用的操作。可以使用Date對象中的相關方法實現。

以下是一個日期加1天、減2天、加1個月、減2個月、加1年、減2年的示例:


const dateObj = new Date();
console.log(dateObj);

dateObj.setDate(dateObj.getDate() + 1);
console.log(dateObj);

dateObj.setDate(dateObj.getDate() - 2);
console.log(dateObj);

dateObj.setMonth(dateObj.getMonth() + 1);
console.log(dateObj);

dateObj.setMonth(dateObj.getMonth() - 2);
console.log(dateObj);

dateObj.setFullYear(dateObj.getFullYear() + 1);
console.log(dateObj);

dateObj.setFullYear(dateObj.getFullYear() - 2);
console.log(dateObj);

以上代碼中,我們首先定義了一個Date對象,然後使用setDate()、setMonth()、setFullYear()方法進行日期加減運算,最後輸出修改後的Date對象。

總結

本文從多個角度詳細闡述了JS生成時間戳及相關操作的實現,內容包含了JS獲取當前時間戳、將普通時間格式轉成時間戳、JS對時間戳進行格式化展示、JS實現倒計時功能、JS實現時間戳與Date對象的轉換、JS實現延時執行功能、JS實現定時執行功能、JS生成指定區間範圍內的隨機數、JS實現時間日期的加減運算等方面。希望能夠對前端開發者們有所幫助。

原創文章,作者:PYRMO,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/333293.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PYRMO的頭像PYRMO
上一篇 2025-01-27 13:35
下一篇 2025-02-01 13:34

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • Python應用程序的全面指南

    Python是一種功能強大而簡單易學的編程語言,適用於多種應用場景。本篇文章將從多個方面介紹Python如何應用於開發應用程序。 一、Web應用程序 目前,基於Python的Web…

    編程 2025-04-29
  • Python zscore函數全面解析

    本文將介紹什麼是zscore函數,它在數據分析中的作用以及如何使用Python實現zscore函數,為讀者提供全面的指導。 一、zscore函數的概念 zscore函數是一種用於標…

    編程 2025-04-29
  • 解決docker-compose 容器時間和服務器時間不同步問題

    docker-compose是一種工具,能夠讓您使用YAML文件來定義和運行多個容器。然而,有時候容器的時間與服務器時間不同步,導致一些不必要的錯誤和麻煩。以下是解決方法的詳細介紹…

    編程 2025-04-29
  • 全面解讀數據屬性r/w

    數據屬性r/w是指數據屬性的可讀/可寫性,它在程序設計中扮演着非常重要的角色。下面我們從多個方面對數據屬性r/w進行詳細的闡述。 一、r/w的概念 數據屬性r/w即指數據屬性的可讀…

    編程 2025-04-29
  • Python計算機程序代碼全面介紹

    本文將從多個方面對Python計算機程序代碼進行詳細介紹,包括基礎語法、數據類型、控制語句、函數、模塊及面向對象編程等。 一、基礎語法 Python是一種解釋型、面向對象、動態數據…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • 想把你和時間藏起來

    如果你覺得時間過得太快,每天都過得太匆忙,那麼你是否曾經想過想把時間藏起來,慢慢享受每一個瞬間?在這篇文章中,我們將會從多個方面,詳細地闡述如何想把你和時間藏起來。 一、一些時間管…

    編程 2025-04-28
  • 計算斐波那契數列的時間複雜度解析

    斐波那契數列是一個數列,其中每個數都是前兩個數的和,第一個數和第二個數都是1。斐波那契數列的前幾項為:1,1,2,3,5,8,13,21,34,…。計算斐波那契數列常用…

    編程 2025-04-28

發表回復

登錄後才能評論