使用 JavaScript 添加时间
当前在 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')
您还可以通过传入一系列参数来创建日期:year
、monthIndex
、day
、hours
、minutes
、seconds
和 milliseconds
。只有 year
和 monthIndex
是必需的。
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*()
命名约定,其中 *
是要获取或设置的属性。
例如,要获取 nationalDay
的 hours
和 month
属性,使用 getHours()
和 getMonth
。
nationalDay.getHours() // 10// 记住:它从 0 开始
nationalDay.getMonth() // 10
要设置 hours
和 month
属性,使用 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 添加时间相关推荐
- dede自定义表单增加添加时间怎么弄
我们在用dedecms添加自定义表单时有时想要设置一个用户提交的时间,方便查询,比如我们的客服人员查询昨天晚上下班后有哪些订单是刚生成的,比较好查看,如下图所示.那么,dedecms自定义表单增加添加 ...
- (完全详解)JavaScript 添加、复制、移除、移动、创建和查找节点
(完全详解)JavaScript 添加.复制.移除.移动.创建和查找节点 一.创建新节点 1.document.createDocumentFragment() //创建一个 DOM 片段 creat ...
- javascript 显示时间
javascript 显示时间 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...
- 转换时间对象和字符串对象添加时间
/* *基本思路,将字符串时间转化为时间对象,通过毫秒数来加减时间,然后在转化为字符串输出 */ //转化字符时间yy-mm-dd hh:mm:ss 为时间对象 使用split进行字符串的分割,取 ...
- javascript日期时间操作总结
js获得当前系统日期时间 < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http: ...
- java添加时间,如何通过Java中的addHours()方法添加时间
我试图让这个飞机项目工作,我不能为我的生活弄清楚如何在"public void addHours()"中添加时间,或者如果我甚至做了前面的正确!任何帮助都会很棒! 问题有待回答: ...
- Python数据库添加时间
利用pymysql往数据库中添加时间字段的方法: 1.导入datetime和pymysql: 安装:pip install pymysql, datetime是内置 2.写入SQL语句: 向对应的字段 ...
- BJUI+SSM实现报表添加时间筛选功能
场景 BJUI前段报表展示,需要添加时间筛选条件,BJUI传递两个时间与数据库中的某个时间的字段进行比较. 效果 实现 BJUI前段jsp页面: <label>开始时间:<input ...
- UE4学习-虚幻4帮助手册、通过蓝图实现动画效果、添加时间轴、添加声音、C++和蓝图事件关联
文章目录 虚幻4帮助手册 把一个对象转换成蓝图类 C++和蓝图的关联 添加时间轴 修改defaultPawn 修改door的事件图标 给场景添加声音 虚幻4帮助手册 虚幻4帮助手册 虚幻4帮助手册 虚 ...
最新文章
- hdaoop下HDFS操作
- HMM 前向 后向 Viterbi算法讲解通透的
- 想当然是编程最大的坑,记更新删除过期cookie无效有感
- vuex状态管理简单入门
- 直播预告丨企服企业如何科学搭建规模化获客体系?
- 读源码学C之阅读李恒的bioawk
- Qt Mac 桌面版本编译出错
- pandas库Series使用和ix、loc、iloc基础用法
- atcoder A - Frog 1(DP)
- 基于jsp+mysql+Spring+hibernate+的SSH在线学习交流论坛平台
- header+php+xiazai_php通过header方法实现文件下载
- Spring MVC No converter found for return value of type
- 服务器系统bios,服务器bios下查看系统配置
- 解构流存储 — Pravega,与 Flink 构建端到端的大数据流水处理线
- CCF - 201604-2 - 俄罗斯方块
- 第一款低代码应用平台搭建的设备管理系统
- python 组态_西门子组态WinCC自学入门视频教程资源_48讲
- SecKill学习初步框架时报错记录
- 第5章 初识SqlSugarCore之内置逻辑分页
- NVMe驱动解析-注册设备