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/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

发表回复

登录后才能评论