【JS】JavaScript时间与时间戳相互转换

2023-11-16

1.2 时间 (JS常用时间类型)

1.2.1 GMT-格林尼治标准时

1.2.2 UTC- 协调世界时

1.2.3 中国标准时间

JS中new date()直接输出便是以下格式:
Thu Feb 28 2019 17:11:43 GMT+0800(中国标准时间)
JS默认中国标准时间是 GMT时间.由于我们国家采用的是东八区时间,因此是GMT +0800

1.2.4 ISO8601标准时间格式

例如2019-02-28T09:51:45.540Z,其中T表示合并,Z表示UTC时间

1.2.5 时间戳(timestamp)

时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
java的date默认精度是毫秒,也就是说生成的时间戳就是13位的,而像c++或者php生成的时间戳默认就是10位的,因为其精度是秒。

  • 问题1:为什么会生成13位的时间戳,13位的时间戳和10时间戳分别是怎么来的
    date默认精度是毫秒,也就是说生成的时间戳就是13位的,有的时间戳默认就是10位的,因为其精度是秒。
  • 问题2:13位时间戳如何转换成10位时间戳
    第一种:通过substring方法,将13位的时间戳最后三位数字截取
    第二种:将13位时间戳除以1000取整。
北京时间:2021-11-18 22:14:24
时间戳:1637244864707 (毫秒) Math.round(new Date())
时间戳:1637244864 (秒)      Math.round(new Date() / 1000)

1. 时间戳转换为时间

// 时间戳:1637244864707
/* 时间戳转换为时间 */
  timestampToTime(timestamp) {
    timestamp = timestamp ? timestamp : null;
    let date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
    let Y = date.getFullYear() + '-';
    let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
    let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
    let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
    let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
    let s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
    return Y + M + D + h + m + s;
  }

2. 时间转换为时间戳

// 北京时间:2021-11-18 22:14:24
/* 时间yyyy-MM-dd HH:mm:ss转为时间戳 */
  timeToTimestamp(time){
    let timestamp = Date.parse(new Date(time).toString());
    //timestamp = timestamp / 1000; //时间戳为13位需除1000,时间戳为13位的话不需除1000
    console.log(time + "的时间戳为:" + timestamp);
    return timestamp;
    //2021-11-18 22:14:24的时间戳为:1637244864707
  }

Date.parse()分析一个包含日期的字符串,函数的返回值为Number类型,返回该字符串所表示的日期与 1970 年 1 月 1 日午夜之间相差的毫秒数。

3. 时间字符串转换为时间

let str = '2021年12月10日 09:27';
let replacedStr = str.replace('年', '-').replace('月', '-').replace('日', '');
console.log(replacedStr); //2021-12-10 09:27
let parsedDate = new Date(replacedStr);
console.log(parsedDate); //Fri Dec 10 2021 09:27:00 GMT+0800 (中国标准时间)

Fri Dec 10 2021 09:27:00 GMT+0800 (中国标准时间)
2021-12-10 09:27

4. 时间yyyy-MM-dd HH:mm:ss的含义

字段 说明
yyyy或YYYY 年:注意这个大小写是不同的!!!y 是Year, Y 表示的是Week year。 经过试验,得出的结果如下:Week year 意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。
MM 月:M大写是为了区分“月”与“分”
dd 日:必须小写,大写有时会出现本文上面出现的诡异bug
HH或hh或H 时:大小写不同!!!小写的h是12小时制,大写的H是24小时制。HH和H区别在于是否有前导0
mm或者m 分:mm与m的区别为是否有前导零
ss或者s 秒:ss和s的区别为是否有前导零

”前导0”:比如凌晨1点2分,HH:mm显示为01:02,H:m显示为1:2

时间戳在线转换
JavaScript Date.parse()详解.

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

【JS】JavaScript时间与时间戳相互转换 的相关文章

随机推荐

  • 2011年北京大学计算机研究生机试真题(题解)

    九度OJ题目传送门 2011年北京大学计算机研究生机试真题 鸡兔同笼 题目描述 一个笼子里面关了鸡和兔子 鸡有2只脚 兔子有4只脚 没有例外 已经知道了笼子里面脚的总数a 问笼子里面至少有多少只动物 至多有多少只动物 输入 第1行是测试数据
  • 存储路径_存储多路径

    今天的话题是存储多路径 三国开篇 天下大势 合久必分 分久必合 我觉得用来形容多路径也非常贴切 它可以将多条路径整合成一条 也可以在单条路径出现问题时迅速切换 先简单介绍下多路径 IT存储系统在构建的时候 为了最大化保证安全 通常会采用冗余
  • C++实现——LCS-最大公共子串长度

    求两个字符串的最长公共子串的长度 子串不一定是原串中的连续子串组成 LCS 使用动态规划 include
  • Python基础知识及概念

    Python基础知识及概念 1 注释 单行注释 这是一个单行注释 在程序开发时 同样可以使用 在代码的后面 旁边 增加说明性的文字 但是 需要注意的是 为了保证代码的可读性 注释和代码之间 至少要有 两个空格 示例代码如下 print he
  • Vue-Quill-Editor 设置编辑器中文字的默认字体大小

    Vue Quill Editor 默认字体看起来有些小 如下 设置默认字体大小 ql container 设置默认字号 font size 16px 设置之后
  • 利用jsqlparser解析SQL语句

    时常会遇到很多情况 我们需要对SQL语句进行替换或者拼接 以往我们可能会用StringBuild来进行拼接 StringBuilder sql new StringBuilder sql append select from sql app
  • 开发框架Furion之Winform+SqlSugar

    目录 1 开发环境 2 项目搭建 2 1 创建WinFrom主项目 2 2 创建子项目 2 3 实体类库基础类信息配置 2 3 1 Nuget包及项目引用 2 3 2 实体基类创建 2 4 仓储业务类库基础配置 2 4 1 Nuget包及项
  • pytorch 人脸识别

    import torch import os import numpy as np import torch nn as nn import matplotlib pyplot as plt import time import torch
  • nim游戏 C++

    如果堆中石头的数量 nn 不能被 44 整除 那么你总是可以赢得 Nim 游戏的胜利 class Solution public bool canWinNim int n if n lt 0 return 0 else return n 4
  • 头插法和尾插法的详细区别

    浅析线性表 链表 的头插法和尾插法的区别及优缺点 线性表作为数据结构中比较重要的一种 具有操作效率高 内存利用率高 结构简单 使用方便等特点 今天我们一起交流一下单向线性表的头插法和尾插法的区别及优缺点 线性表因为每个元素都包含一个指向下一
  • IDE0006 加载项目时遇到了错误,已禁用了某些项目功能,例如用于失败项目和依赖于失败项目的其他项目的完整解决方案分析。

    重新打开vs2017就好了 原因猜测 vs来大姨妈了 现象是catch ex 后面是e message 单纯少个x vs没检测出来 辛辛苦苦搜个半天 可能太依赖vs了 懒人专属编辑器
  • npm私有化docker方式部署及使用说明

    一 部署nexus 本文采用docker方式部署nexus 安装docker yum install y docker 拉取nexus镜像 docker pull sonatype nexus3 准备本地映射目录 以便本地化持续存储数据 目
  • python No module named numpy. distutils._msvccompiler in numpy. distutils; trying from distutils

    在cmd 中输入 python setup py install 报错 No module named numpy distutils msvccompiler in numpy distutils trying from distutil
  • Android 报错 : FATAL EXCEPTION:main 解决方法

    今天安卓开发课上碰到的新问题 前景提示 老师让我们自己试一下那个两个页面跳转的效果 于是我就开始写了 然后报错 解决方法 逐一排查 首先要看你mainfest xml里面有没有增加Activity 当然我是加了 但是他还报错 具体代码界面
  • Ubuntu18.04 windows10双系统安装解决grub引导问题

    最近给服务器的电脑升级了ubuntu18 直接用u盘安装 老是说grub引导问题 网上有很多教程真的坑人 说的含含糊糊的 不知道在卖弄什么关子 我参照这两个教程解决了安装问题 十分钟就装好了 感谢你们 https blog csdn net
  • vue Tesseract的 ocr 文字识别

    npm结果页 https www npmjs com package tesseract js tesseract官网地址 https tesseract projectnaptha com npm结果页 npm结果页 tesseract官
  • 如何优雅的统计代码耗时

    点击上方 小强的进阶之路 选择 星标 公众号 优质文章 及时送达 预计阅读时间 16分钟 作者 Jitwxs 原文链接 底部链接可直达 https jitwxs cn 5aa91d10 html 一 前言 代码耗时统计在日常开发中算是一个十
  • R语言—列表

    文章目录 列表 定义 创建列表 List 列表 List 元素的引用 列表 List 元素的修改 访问列表元素和值 去列表化 在列表上使用apply系列函数 递归型列表 列表 R语言的6种模式 向量 矩阵 数组 数据框 列表 因子 向量 矩
  • SQLite如何删除,修改、重命名列

    今天在SQLite数据库中添加了一列 后来发现列名写错了 于是使用SQL语句来修改列名 可是根本不管用 首先 请放弃alter吧 sqlite官方说明如下 SQLite supports a limited subset of ALTER
  • 【JS】JavaScript时间与时间戳相互转换

    时间与时间戳相互转换 1 2 时间 JS常用时间类型 1 2 1 GMT 格林尼治标准时 1 2 2 UTC 协调世界时 1 2 3 中国标准时间 1 2 4 ISO8601标准时间格式 1 2 5 时间戳 timestamp 1 时间戳转