时间与时间戳的转换

2023-11-19

什么是时间戳?

  • 时间戳是指格林威治时间自1970年1月1日(00:00:00 GTM)至当前时间的总秒数。它也被称为Unix时间戳(Unix Timestamp)。
  • 时间戳是能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间

   1、将时间转换成时间戳

  •    
    var tempTime1 = Date.parse(new Date());
    //结果:1576585605000 毫秒级别的数值被转化为000
  • var tempTime2 = (new Data()).valueOf()

    // 结果:1576585605369通过valueOf()函数返回指定对象的原始值获得准确的时间戳值

  • var tempTime3 = new Date().getTime()

    //结果:1576585605369 通过原型方法直接获得当前的毫秒值,准确

  • var tempTime4 = Number(new Date())

    //结果:1576585605369,将时间转化为一个number类型的数值,即时间戳

    2、时间戳转换成时间

  • var tempTime5 = new Date(1576585605369)

    //直接用 new Date(时间戳) 格式转化获得当前时间

  • 案例:JS前一天和后一天
  • HTML代码
  • <button onclick="goBefore()">前一天</button>
        <button onclick="goAfter()">后一天</button>
        <div id="app"></div>
    
        <script src="index.js"></script>

  • javaScript 代码:

    复制代码

    var date = new Date();
    
    var app = document.getElementById("app");
    app.innerHTML = myGetDate(date);
    
    //获取时间戳
    var time = date.getTime();//当前的毫秒数
    var oneDay = 1000*60*60*24;//一天的毫秒数
    
    
    //前一天
    function goBefore(){
        var before = time -= oneDay;//计算前一天的毫秒数
        date.setTime(before);
        app.innerHTML = myGetDate(date);
    }
    
    //后一天
    function goAfter(){
        var after = time += oneDay;//计算前一天的毫秒数
        date.setTime(after);
        app.innerHTML = myGetDate(date);
    }
    
    
    //封装日期格式化的方法
    function myGetDate(d){
        return `${d.getFullYear()}年${d.getMonth()+1}月${d.getDate()}日`;
    }

    复制代码

时间戳转时间封装

JS文件:

export function parseTime(time, cFormat) {
  if (arguments.length === 0) {
    return null;
  }
  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';
  let date;
  if (typeof time === 'object') {
    date = time;
  } else {
    if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
      time = parseInt(time);
    }
    if (typeof time === 'number' && time.toString().length === 10) {
      time = time * 1000;
    }
    date = new Date(time);
  }
  const formatObj = {
    y: date.getFullYear(),
    m: date.getMonth() + 1,
    d: date.getDate(),
    h: date.getHours(),
    i: date.getMinutes(),
    s: date.getSeconds(),
    a: date.getDay()
  };
  const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
    let value = formatObj[key];
    // Note: getDay() returns 0 on Sunday
    if (key === 'a') {
      return ['日', '一', '二', '三', '四', '五', '六'][value];
    }
    if (result.length > 0 && value < 10) {
      value = '0' + value;
    }
    return value || 0;
  });
  return time_str;
}

使用引入:

import { parseTime } from '.js文件路径'

使用方法:

this.setTime = parseTime(this.setTime,"{y}年{m}月{d}日 {h}:{i}:{s}")

原生Date格式(Thu Aug 20 2020 14:55:18 GMT+0800 (中国标准时间)),并转换成  2020-08-20 00:00:00 模式

export function protoTime(dataTime, protoFormat) {
    const dataProtoFormat = protoFormat || '{y}-{m}-{d} {h}:{i}:{s}';
    let date = dataTime
    const formatData = {
        y: date.getFullYear(),
        m: date.getMonth() + 1,
        d: date.getDate(),
        h: date.getHours(),
        i: date.getMinutes(),
        s: date.getSeconds(),
    };
    const freshData = dataProtoFormat.replace(/{(y|m|d|h|i|s)+}/g, (result, key) => {
        let value = formatData[key];
        if (result.length > 0 && value < 10) {
            value = '0' + value;
        }
        return value || 0;
    });
    return freshData;
}

根据当前的日期,获取最近一周的日期

getDataArea(currentTime) {
				var currentDate = new Date(currentTime)
				var timesStamp = currentDate.getTime();
				var currenDay = currentDate.getDay();
				var weeks = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"];
				var dates = [];
				for (var i = 0; i < 7; i++) {
					dates.push({
						date: new Date(timesStamp + 24 * 60 * 60 * 1000 * (i - (currenDay + 6) % 7))
							.toLocaleDateString().replace(/\//g, '-'),
						week: weeks[i]
					});
				}
				return dates
			}

结果:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时间与时间戳的转换 的相关文章

随机推荐

  • Oracle RAC FailOver配置

    Oracle RAC FailOver配置 Oracle RAC主要为数据库的应用提供了HA High Available 的环境 HA体现在负载均衡 loadbalance 和容错 failover 两个方面 Oracle RAC 的Fa
  • Scala 的 Set集合详解

    目录 一 不可变长Set集合 1 Set的声明与遍历 2 Set的几个常用方法 intersect diff 操作符 filter过滤 二 可变长Set集合 三 Set的其他方法 Set集合的特点 元素存放无序 且不可重复 一 不可变长Se
  • c++:多态案例,电脑组装

    需求 include
  • 【Ansible初识】Linux系统之Ansible的基本介绍

    Ansible初识 Linux系统之Ansible的基本介绍 一 Ansible的介绍 1 Ansible简介 2 Ansible的特点 3 Ansible的原理 二 Ansible的架构 1 Ansible的架构图 2 Ansible的核
  • oracle数据库分区的几种方式

    范围分区 每个分区都由一个分区键值范围指定 对于一个以日期列作为分区键的表 2005 年 1 月 分区包含分区键值为从 2005 年 1 月 1 日 到 2005 年 1 月 31 日 的行 列表分区 每个分区都由一个分区键值列表指定 对于
  • IOS 访问系统粘贴板

    粘贴板提供了一种核心OS特性 用于跨应用程序共享数据 用户可以跨应用来复制粘贴 也可以设置只在本应用中复制粘贴用来保护隐私 UIPasteboard类允许访问共享的设备粘贴板以及内容 下面代码返回一般的系统粘贴板 它适合大多数一般的复制粘贴
  • 百度智能云章淼:详解企业级七层负载均衡开源软件BFE

    随着云计算和云原生的发展 七层负载均衡得到了越来越多的关注 同时也出现了很多不同的解决方案 BFE是基于Go语言编写的七层负载均衡开源软件 在2020年6月被CNCF接受为 沙盒项目 成为中国第一个网络方向的CNCF开源项目 2022年7月
  • Open3D 计算模型的表面积和体积

    函数解析 def get surface area self 计算物体表面积 def get volume self 计算物体体积 完整的代码 import open3d as o3d print 绘制立方体 mesh box o3d ge
  • android解决方法数超过65536问题,(满则溢)Android AS打包提示方法数超65536的解决方法...

    满则溢 平常大家喝饮料啥的都知道一个杯子的容量 如果超出就溢出 这个时候只能在加个杯子装了 Android开发也是如此 当方法数超过65536的时候就需要分包 为啥出现 项目当中添加的依赖和架包太多了 方法数超过65536还是很正常的 所以
  • flutter可以开发HTML5,Flutter建立JsBridge用于webview与h5通信

    项目背景 随着项目的不断完善 需要做一些运营活动 通常是H5页面 在app中打开这些H5页面就需要引入WebView 有时候H5需要客户端提供一些内部的接口 这时候我们就需要建立JSBridge用于客户端与H5之间的通讯 使用 1 安装we
  • 宝可梦虚拟银行服务器连接不上,更多宝可梦!《精灵宝可梦:太阳/月亮》虚拟银行将开启...

    任天堂近日宣布3DS 精灵宝可梦 太阳 月亮 Pok mon Sun Moon 将在一月下旬开启 宝可梦虚拟银行 这个功能主要是让游戏与整个 口袋妖怪 系列进行联动 进行寄存或领出各种宝可梦 宝可梦虚拟银行 从1月下旬起对应 精灵宝可梦 太
  • 25 个 JavaScript 实用级语句 进阶

    1 复制内容到剪贴板 为了提高网站的用户体验 我们经常需要将内容复制到剪贴板 以便用户粘贴到指定的地方 const copyToClipboard content gt navigator clipboard writeText conte
  • 黑客美化版大马_2012版

  • JVM调优之GC调优——响应时间优先(三)

    GC调优之响应时间优先 上一节简单介绍了GC调优的吞吐量优先 详见 https blog csdn net Winner941112 article details 102679614 这一节将会考虑响应时长进行调优 响应时间优先 依然使用
  • Qt5学习之路(vs2012下创建一个QT应用程序)2013-10-14

    刚开始学习QT在网上找的资料基本都是使用QT Create进行开发的 VS下开发的学习资料感觉很少很难找的到 视频教程也基本没看到过貌似 因为我们研发中心是使用MFC进行开发开发工具是VS2010 使用QT开发的话基本我们不会再使用QT C
  • 2021-01-01 中国公务员级别

    中华人民共和国公务员 1 级别 一级到二十七级 27个级别 2 职务 国家级正职到乡科级副职 10级领导职务 3 职级 一级巡视员到二级科员 12个职级 根据 中华人民共和国公务员法 2018年12月29日第十三届全国人民代表大会常务委员会
  • 使用selenium自动登录淘宝并获取cookie

    http sunjun041640 blog 163 com blog static 256268322013101473549333 最近做个东西需要用程序登录淘宝然后去后台获取些东西 分析了一下登录页面 发现淘宝有用flash生成一个字
  • BLE连接、配对和绑定

    参考 一篇文章带你解读蓝牙配对绑定 参考 BLE安全之SM剖析 1 参考 BLE安全之SM剖析 2 参考 BLE安全之SM剖析 3 参考 https blog csdn net chengbaojin article details 103
  • 有趣的Hack-A-Sat黑掉卫星挑战赛——被破坏的阿波罗计算机(解法二)

    国家太空安全是国家安全在空间领域的表现 随着太空技术在政治 经济 军事 文化等各个领域的应用不断增加 太空已经成为国家赖以生存与发展的命脉之一 凝聚着巨大的国家利益 太空安全的重要性日益凸显 1 而在信息化时代 太空安全与信息安全紧密地结合
  • 时间与时间戳的转换

    什么是时间戳 时间戳是指格林威治时间自1970年1月1日 00 00 00 GTM 至当前时间的总秒数 它也被称为Unix时间戳 Unix Timestamp 时间戳是能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据 通常是一个