js-有关时间

news2025/1/16 7:49:47

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Date

有关Date

返回格式
Sun Oct 10 2021 00:00:00 GMT+0800 (中国标准时间)

  1. new Date() 无参数
    获取当前时间
  2. new Date(value) 传入时间戳
    传入一个时间戳
    一个 Unix 时间戳(Unix Time Stamp),它是一个整数值,表示自 1970 年 1 月 1 日 00:00:00 UTC(the Unix epoch)以来的毫秒数,忽略了闰秒。请注意大多数 Unix 时间戳功能仅精确到最接近的秒。
  3. new Date(dateString) 传入一个合规的日期字符串
    表示日期的字符串值。该字符串应该能被 Date.parse() 正确方法识别(即符合 IETF-compliant RFC 2822 timestamps 或 version of ISO8601)。
    有关Date.parse()
    // 例
    Date.parse("2013-4-23")
    // 1366646400000
    Date.parse('Aug 9, 1995')
    // 807897600000
    
    对于Date.parse(dateString)
    在这里插入图片描述
  4. 多个参数 如new Date(1991, 9, 17)

获取时间戳

Date.parse(new Date());

后三位是000 不是毫秒级
new Date()获取当前时间字符串 这个字符串是一个dateString
Date.parse需要传入一个dateString

new Date().valueOf();

毫秒级
获取到的时间戳除以1000就可获得Unix时间戳

new Date().getTime();

毫秒级
获取到的时间戳除以1000就可获得Unix时间戳

比较时分大小/获取今天0点、24点的时间戳

https://juejin.cn/post/6844903695004483597

  1. 比较时分大小可以用setHours传入时分,返回时间戳,之后比较时间戳大小即可

    可用Date.setHours(hour,min,sec,millisec) 因为使用new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);还要传入year month数据,使用setHours会简洁很多

    返回值:一个时间戳
    在这里插入图片描述

  2. 获取0点 24点的时间戳
    和上面一样
    在这里插入图片描述

时间格式转换代码分析(vue-element-admin)

export function parseTime(time, cFormat) {
  if (arguments.length === 0 || !time) {
    return null
  }
  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
  let date
  if (typeof time === 'object') {
    date = time
  } else {
    if ((typeof time === 'string')) {
      if ((/^[0-9]+$/.test(time))) {
        // support "1548221490638"
        time = parseInt(time)
      } else {
        // support safari
        // https://stackoverflow.com/questions/4310953/invalid-date-in-safari
        time = time.replace(new RegExp(/-/gm), '/')
      }
    }

    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(/{([ymdhisa])+}/g, (result, key) => {
    const value = formatObj[key]
    // Note: getDay() returns 0 on Sunday
    if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
    return value.toString().padStart(2, '0')
  })
  return time_str
}

测试
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

第一个参数:

  1. object类型 date变量为传入的值
  2. 为数字字符串 parseInt转成数字 date变量为new Date(时间戳)
  3. 不为数字字符串 把-替换为/ 因为safari不支持-连接 , date变量为类似new Date(2022/11/20)
  4. 为number类型 且为10位 是unix时间戳 date变量为new Date(time*1000) ; 为number类型不为10位 date变量为new Date(time)

在这里插入图片描述

在这里插入图片描述
不过注意padstart有兼容问题

momentjs/dayjs

https://momentjs.bootcss.com/

https://dayjs.fenxianglu.cn/category/

其他

https://juejin.cn/post/7016187931631190029 服务器/数据库的时间和本地时间是不同的时区

https://juejin.cn/post/6996557818081837087 有关utc和中国标准时间

https://juejin.cn/post/7025629497122619399 JS UTC时间转为本地时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93931.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM运行流程/运行时数据区

JVM运行流程 程序在执行之前先要把 java代码 转换成 字节码文件 (.class文件), JVM 首先需要把字节码通过一定的方式 类加载器 (ClassLoader) 把文件加载到内存中 运行时数据区 (Runtime Data Area) , 而字节码文件是 JVM 的一套指令集规范, 并不能直接交给底层操作系统去执行…

【大数据技术Hadoop+Spark】Hive数据仓库架构、优缺点、数据模型介绍(图文解释 超详细)

一、Hive简介 Hive起源于Facebook,Facebook公司有着大量的日志数据,而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架,可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发,但对于其他语言使用…

Anaconda为虚拟环境安装第三方库与Spyder等软件的方法

本文介绍在Anaconda中,为Python的虚拟环境安装第三方库与Spyder等配套软件的方法。 在文章Anaconda中Python虚拟环境的创建、使用与删除(https://blog.csdn.net/zhebushibiaoshifu/article/details/128334614)中,我们介绍了在Anac…

提前做好网络安全分析,运维真轻松(二)

背景 某汽车总部已部署NetInside流量分析系统,使用流量分析系统提供实时和历史原始流量。汽车配件电子图册系统是某汽车集团的重要业务系统。本次分析重点针对汽车配件电子图册系统进行预见性分析,以供安全取证、性能分析、网络质量监测以及深层网络分析…

FRP搭建内网穿透

前言 内网穿透方式很多,可以用公网IP进行端口映射,DDNS等。现在我有个云服务器,使用它做中转作为内网穿透的工具。 可以在这个网址了解下原理基础:内网穿透工具的原理与开发实战 FRP内网穿透 FRP是一个内网穿透的反向代理应用…

电压放大器工作原理及特点是什么

很多人虽然经常使用电压放大器,但是对于电压放大器的工作原理以及特点是什么都不清楚,下面就来为大家讲解。 什么是电压放大器? 电压放大器是一种能够增加信号电压的装置。对于弱信号,通常采用多级放大级联方式分直接耦合、阻容耦…

关于机器人状态估计(10)-VSLAM与VIO的3D建图,重定位与世界观综述

近期我国迎来了cov海啸,其实我也不知道我羊了没有,但并没有什么不舒服同时因为我没有测,那自然是没有羊,或者是薛定谔的羊。 近年另外一块工作的综述,这篇科普的同时,也会包含部分有价值的信息。 一. 摘要…

【面试题】 面试官:你如何实现大文件上传

大厂面试题分享 面试题库 前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 一、问题分析 如果将大文件一次性上传,会发生什么?想必都遇到过在一个大文件上传、转发等操作时,由…

如果公司线上系统突然宕机了,怎么才能确保MQ消息不丢失?

V-xin:ruyuanhadeng获得600页原创精品文章汇总PDF 一、写在前面 之前写过一篇文章《项目里接入了MQ消息中间件以后,我摸鱼的时间更长了~》,我们用一个简单易懂的电商场景给大家引入说明了一个消息中间件的使用场景。 同时,我们还…

考研英语|传统文化英语高频词汇

目录​​​​​​​ 一. 节日名称 二. 相关节日活动 三. 传统饮食 四. 传统建筑 五. 文学艺术 六. 四大发明 七. 新四大发明 一. 节日名称 1. 春节:Chinese New Years Day / Chinese Lunar New Year / the Spring Festival 2. 除夕:New Years E…

Vue2.0开发之——Vue组件-样式冲突(35)

一 概述 scoped的使用及底层原理使用deep修改子组件中的样式 二 scoped的使用及底层原理 2.1 组件之间的样式冲突问题(修改Left.vue中的h3属性,Right也被修改) 默认情况下,写在 .vue 组件中的样式会全局生效,因此很容易造成多个组件之间的样…

kubelet源码分析 syncLoopIteration(二) plegCh、syncCh

kubelet源码分析 syncLoopIteration(二) plegCh 上一篇:kubelet源码分析 syncLoopIteration(一) configCh 上一篇说了configCh管道的作用,这一篇说一下plegCh管道。这个管道主要是监听容器运行时状态的&…

搭建Python环境

搭建Python环境 文章目录搭建Python环境需要安装的环境:安装Python1)找到官网2)找到下载页面3)双击安装包4)运行 hello world安装 PyCharm1)找到官方网站2)找到下载页面3)双击安装包…

BEVFormer-accelerate:基于 EasyCV 加速 BEVFormer

导言 BEVFormer是一种纯视觉的自动驾驶感知算法,通过融合环视相机图像的空间和时序特征显式的生成具有强表征能力的BEV特征,并应用于下游3D检测、分割等任务,取得了SOTA的结果。我们在EasyCV开源框架(https://github.com/alibaba…

照片调色JixiPix Hand Tint Pro

JixiPix Hand Tint Pro带有专业分层系统的简单工作流程具有色调,色调,颜色,乘法,柔和涂料或可以逐层更改的涂料的模式,以及功能强大的选色工具,可在隔离区域内保持刷涂,以实现快速着色和准确性。…

Linux环境下多线程C/C++程序的内存问题诊断

目录说明常见的内存错误举例常见的内存访问错误有以下几种:内存问题定位步骤野指针内存释放后使用(UaF,Use after Free)内存问题检查工具常见的内存问题检查工具Valgrindgcc 命令行参数 -fsanitizeaddress -fno-omit-frame-pointe…

Prim算法

应用场景 1.如何修路才能保证修路的总路程最短? 特点: 1.将所有节点全部连通,并且边上的权总和最小——>最小生成树 2.N个顶点,有N-1条边 Prim算法图解分析 简而言之,就是先确定顶点A,然后寻找没有遍…

代码随想录训练营第52天|LeetCode 300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

参考 代码随想录 题目一:LeetCode 300.最长递增子序列 确定dp数组下标及其含义 dp[i]:在nums数组中,在下标0~i元素(包含i)的基础上,以nums[i]作为子序列的最后一个元素,组成的最长严格递增子序…

0126 搜索与回溯算法 Day15

剑指 Offer 34. 二叉树中和为某一值的路径 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [5,4,8,11,null,13,…

cuda学习笔记4——cuda 核函数

cuda学习笔记4——cuda 核函数一、CUDA规范二、核函数内部线程的使用2.1 如何启动核函数demo 1:起16个线程来计算,四个线程块,每个块内四个线程例子demo2核函数是指在GPU端运行的代码,核函数内部主要干了什么?简而言之…