当前在 JavaScript 中管理日期和时间的方法是使用 Date() 对象。还行,但不太好。

它具有从字符串创建 Date() 对象、格式化日期和时间以及取回特定值的方法。但它缺乏从日期中添加或减去时间的原生方法。时区支持也很糟糕。

有一个新的 API 正在开发中:Temporal()。它将允许您执行以下操作:

// 目前浏览器中不支持这一点。
Temporal.Now.instant().add({ hours: 5, seconds: 20 })

它目前是第 3 阶段的提案,这意味着它与标准流程相距甚远。

那么,我们先来看看 Date() 的一些用法。

创建 Date() 对象

您可以使用 new Date() 构造函数创建 Date() 对象。

如果不传入任何参数,它将为当前运行的时刻创建一个 Date() 对象。也可以将日期字符串作为参数传入。

结果 Date() 对象与您当前的时区相关。

// 现在的日期对象
let now = new Date()// 国庆节日期对象
let nationalDay = new Date('October 1, 2022')

您还可以通过传入一系列参数来创建日期:yearmonthIndexdayhoursminutessecondsmilliseconds。只有 yearmonthIndex 是必需的。

monthIndex 参数让人感到困惑,因为它从 1 月的 0 开始,而不是 1

// 请注意,尽管 10 月是第 10 个月,但月份指数是 9
let halloween = new Date(2022, 10, 1)// 当地时间国庆节上午 10:00
let nationalDay = new Date(2022, 10, 1, 10, 00)

十二月份的月份数为 0:

let December = new Date(2022, 10)
December.getHours() // 0

它很笨重,但很实用。

修改日期

Date() 对象提供了一些实例方法,可以用来获取和修改日期和时间。它们遵循 get*()set*() 命名约定,其中 * 是要获取或设置的属性。

例如,要获取 nationalDayhoursmonth 属性,使用 getHours()getMonth

nationalDay.getHours() // 10// 记住:它从 0 开始
nationalDay.getMonth() // 10

要设置 hoursmonth 属性,使用 setHours()setMonth,传入想要设置的时间参数即可。它使用 24 小时制的时钟。

// 将时间设置为下午 2 点,14 小时
nationalDay.setHours(14)// 把月份定在 7 月
nationalDay.setMonth(6)

添加和删除时间

现在,为了添加和删除时间,我们可以结合使用 get*()set*() 方法。

例如,要向一个时间添加 4 小时,可以使用 getHours() 方法获取当前的小时数,再向其中添加 4 小时,然后将结果传递给 setHours() 方法。

// 将时间设置为下午 6 点(下午 2 点 +4 小时)
nationalDay.setHours(nationalDay.getHours() + 4)

如果由此产生的调整会让您进入下一天、下个月、下一年等,那么 Date() 对象会自动考虑这一点并正确地进行调整。

// 将日期设置为 12 月 26 日凌晨 2 点(12 月 25 日下午 6 点 +8 小时)
nationalDay.setHours(nationalDay.getHours() + 8)

格式化日期

修改日期和时间后,可以将其格式化为字符串。

有两种方法:Date.toLocaleString() 方法和 Intl.dateTimeFormat() 方法。

nationalDay.toLocaleString(navigator.language, {dateStyle: 'full',timeStyle: 'short',hour12: true
}) // '2022年7月2日星期六 上午2:00'new Intl.DateTimeFormat(navigator.language, {dateStyle: 'full',timeStyle: 'short',hour12: true
}).format(nationalDay) // '2022年7月2日星期六 上午2:00'

它们都支持相同的格式选项。Date.toLocaleString() 方法较旧,但使用起来更容易一些。如果您使用相同的设置格式化大量日期,那么 Intl.dateTimeFormat() 方法方法的性能会更好。


http://www.taodudu.cc/news/show-6106834.html

相关文章:

  • MySQL中的“DATE_SUB()” 函数从日期减去指定的时间间隔
  • Sql中TO_DAYS,DATE_SUB等时间函数介绍
  • SQL中日期时间使用函数
  • SQL中的时间
  • MySQL DATE_SUB() -- 从日期减去指定的时间间隔
  • oracle时间字段加几小时
  • SQL插入时间
  • 日期时间加一天
  • MySQL 为日期增加一个时间间隔
  • 日期加一年 SQL
  • boost之日期 时间(date_time)
  • mysql:日期加时间
  • python打印数字对应的星号_python打印表格式数据-星号或注释
  • C语言火车票管理系统
  • C语言源代码系列-管理系统之车票管理系统
  • 简单的车票管理系统(c语言)
  • 汽车站售票管理系统
  • 客运综合管理系统项目—售票管理(售票)
  • java火车票售票系统,火车购票系统,系统实现了用户会员管理、火车车次管理、火车座位管理、系统公告管理、火车票退票、火车票换乘、换乘查询、直达查询、乘车人管理、订单管理、个人中心管理等
  • Python-Django毕业设计汽车站售票管理系统(程序+Lw)
  • Java项目:电影院售票管理系统(java+Servlet+JSP+JDBC+Mysql)
  • VM 和 VC
  • vue,的M、V、VM分别代表什么
  • 虚拟机(VM)与JVM
  • .vm后缀的文件是什么?
  • 虚拟机是什么?
  • vm文件,.vm后缀的文件
  • 什么是虚拟机(virtual machine)
  • 三十.什么是vm和vc?
  • VM是什么,干什么的

使用 JavaScript 添加时间相关推荐

  1. dede自定义表单增加添加时间怎么弄

    我们在用dedecms添加自定义表单时有时想要设置一个用户提交的时间,方便查询,比如我们的客服人员查询昨天晚上下班后有哪些订单是刚生成的,比较好查看,如下图所示.那么,dedecms自定义表单增加添加 ...

  2. (完全详解)JavaScript 添加、复制、移除、移动、创建和查找节点

    (完全详解)JavaScript 添加.复制.移除.移动.创建和查找节点 一.创建新节点 1.document.createDocumentFragment() //创建一个 DOM 片段 creat ...

  3. javascript 显示时间

    javascript 显示时间 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...

  4. 转换时间对象和字符串对象添加时间

    /* *基本思路,将字符串时间转化为时间对象,通过毫秒数来加减时间,然后在转化为字符串输出 */ //转化字符时间yy-mm-dd hh:mm:ss 为时间对象   使用split进行字符串的分割,取 ...

  5. javascript日期时间操作总结

    js获得当前系统日期时间 < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http: ...

  6. java添加时间,如何通过Java中的addHours()方法添加时间

    我试图让这个飞机项目工作,我不能为我的生活弄清楚如何在"public void addHours()"中添加时间,或者如果我甚至做了前面的正确!任何帮助都会很棒! 问题有待回答: ...

  7. Python数据库添加时间

    利用pymysql往数据库中添加时间字段的方法: 1.导入datetime和pymysql: 安装:pip install pymysql, datetime是内置 2.写入SQL语句: 向对应的字段 ...

  8. BJUI+SSM实现报表添加时间筛选功能

    场景 BJUI前段报表展示,需要添加时间筛选条件,BJUI传递两个时间与数据库中的某个时间的字段进行比较. 效果 实现 BJUI前段jsp页面: <label>开始时间:<input ...

  9. UE4学习-虚幻4帮助手册、通过蓝图实现动画效果、添加时间轴、添加声音、C++和蓝图事件关联

    文章目录 虚幻4帮助手册 把一个对象转换成蓝图类 C++和蓝图的关联 添加时间轴 修改defaultPawn 修改door的事件图标 给场景添加声音 虚幻4帮助手册 虚幻4帮助手册 虚幻4帮助手册 虚 ...

最新文章

  1. hdaoop下HDFS操作
  2. HMM 前向 后向 Viterbi算法讲解通透的
  3. 想当然是编程最大的坑,记更新删除过期cookie无效有感
  4. vuex状态管理简单入门
  5. 直播预告丨企服企业如何科学搭建规模化获客体系?
  6. 读源码学C之阅读李恒的bioawk
  7. Qt Mac 桌面版本编译出错
  8. pandas库Series使用和ix、loc、iloc基础用法
  9. atcoder A - Frog 1(DP)
  10. 基于jsp+mysql+Spring+hibernate+的SSH在线学习交流论坛平台
  11. header+php+xiazai_php通过header方法实现文件下载
  12. Spring MVC No converter found for return value of type
  13. 服务器系统bios,服务器bios下查看系统配置
  14. 解构流存储 — Pravega,与 Flink 构建端到端的大数据流水处理线
  15. CCF - 201604-2 - 俄罗斯方块
  16. 第一款低代码应用平台搭建的设备管理系统
  17. python 组态_西门子组态WinCC自学入门视频教程资源_48讲
  18. SecKill学习初步框架时报错记录
  19. 第5章 初识SqlSugarCore之内置逻辑分页
  20. NVMe驱动解析-注册设备

热门文章

  1. C语言time.h中clock()函数的使用
  2. html5游戏 美术,cocos2d-html5游戏学习之绘画小熊
  3. 【视觉注意力机制】SE、CBAM、ECA三种可插拔注意力模块结构实现与详解
  4. RNA-seq 详细教程:实验设计(2)
  5. 智能客服机器人+在线客服,让你的服务不间断
  6. java nio 学习笔记2
  7. 孔洞填充及连通分量提取
  8. 怎么把几个PDF文件合并成一个PDF
  9. 夺命雷公狗---DEDECMS----32dedecms电影网评价星星功能的实现
  10. VelocityEngine 和Velocity类解析