JavaScript Date(日期) 对象

简介: JavaScript Date(日期) 对象

JavaScript Date(日期) 对象

avaScript具有一个内置 Date 对象,该对象存储日期和时间并提供相应的处理日期和时间的方法。

要创建 Date 对象的新实例,请使用 new 关键字:

const date = new Date();

该 Date 对象包含一个 Number,表示从新纪元(即1970年1月1日)起经过的毫秒数。

您可以将日期字符串传递给 Date 构造函数以创建指定日期的对象:

const date = new Date('Jul 12 2011');

要获取当前年份,可以使用Date对象的 getFullYear() 实例方法 。getFullYear() 方法返回日期对应的年份:

const currentYear = date.getFullYear();
console.log(currentYear); //2020

同样,有一些方法可以获取当月的当前日期和当前的月份:

const today = date.getDate();
const currentMonth = date.getMonth() + 1;
getDate() 方法返回当月的当前日期(1-31)。

getMonth() 方法返回指定日期的月份。需要注意的一点是, getMonth()方法返回的是索引值(0-11),其中0表示一月,11表示十二月。因此,加1可以使月份的值标准化。

Date.now()

now()是 Date 对象的静态方法。它返回以毫秒为单位的值,该值表示自纪元以来经过的时间。您可以将now()方法返回的毫秒数传递给Date 构造函数以实例化新的 Date 对象:

const timeElapsed = Date.now();
const today = new Date(timeElapsed);

创建日期

Date 对象用于处理日期和时间。

可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象:

有四种方式初始化日期:

new Date();
new Date(value);
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);

上面的参数大多数都是可选的,在不指定的情况下,默认参数是0。

实例化一个日期的一些例子:

var today = new Date()
var d1 = new Date("October 13, 1975 11:13:00")
var d2 = new Date(79,5,24)
var d3 = new Date(79,5,24,11,33,0)

设置日期

通过使用针对日期对象的方法,我们可以很容易地对日期进行操作。

在下面的例子中,我们为日期对象设置了一个特定的日期 (2010 年 1 月 14 日):

var myDate=new Date();
myDate.setFullYear(2010,0,14);

在下面的例子中,我们将日期对象设置为 5 天后的日期:

var myDate=new Date();
myDate.setDate(myDate.getDate()+5);

注意: 如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换。

日期获取方法

获取方法用于获取日期的某个部分(来自日期对象的信息)。下面是最常用的方法(以字母顺序排序):

getDate()

定义:方法可返回月份的某一天
语法:Date.getDate()
示例:

var d = new Date("July 21, 1983 01:15:00");
var n = d.getDate();
console.log(d.getDate()) //21
返回指定时间该月的一天
getDay()

定义:可返回一周(0~6)的某一天的数字
语法:Date.getDay()
示例1.:

<p id="demo">单击按钮显示今天周几</p>
  <button onclick="myFunction()">点我</button>
    <script>
        //返回周几的名称(不是一个数字):
           function myFunction() {
            var d = new Date();
            var weekday = new Array(7);
            weekday[0] = "周日";
            weekday[1] = "周一";
            weekday[2] = "周二";
            weekday[3] = "周三";
            weekday[4] = "周四";
            weekday[5] = "周五";
            weekday[6] = "周六";
            var x = document.getElementById("demo");
            x.innerHTML = weekday[d.getDay()];
        }//周三
getFullYear()

定义:可返回一个表示年份的 4 位数字
语法:Date.getFullYear()
示例:

<p id="demo">单击按钮显示给定日期的年份</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction(){
    var d = new Date("July 21, 2022 01:15:00");
    var x = document.getElementById("demo");
    x.innerHTML=d.getFullYear();
}//2022
getHours()

定义:方法可返回时间的小时字段
语法:Date.getHours()
示例:

 <p id="demo">单击按钮显示给定时间的小时时段:</p>
    <button onclick="myFunction()">点我</button>
    <script>
    function myFunction(){
        var d = new Date("July 21, 1983 010:15:00");
        var x = document.getElementById("demo");
        x.innerHTML=d.getHours();
    }//10
    </script>
getTime()

定义:方法可返回距 1970 年 1 月 1 日之间的毫秒数
语法:Date.getTime()
示例:

var d = new Date()
document.write(d.getTime())//1666784778751

日期格式化

我们可以使用Date对象的方法将日期格式化为多种格式(GMT,ISO等)。

toDateString()方法以人类可读的格式返回日期:

today.toDateString(); // "Sun Jun 14 2020"
toISOString()方法返回遵循ISO 8601扩展格式的日期:

today.toISOString(); // "2020-06-13T18:30:00.000Z"
toUTCString()方法以UTC时区格式返回日期:

today.toUTCString(); // "Sat, 13 Jun 2020 18:30:00 GMT"
toLocaleDateString()方法以对地区敏感的格式返回日期:

today.toLocaleDateString(); // "6/14/2020"
相关文章
|
jenkins 测试技术 持续交付
提升软件测试效率的创新实践
在软件开发过程中,测试环节扮演着至关重要的角色。本文探讨了如何通过创新的方法和工具,提高软件测试的效率和质量。我们将从自动化测试、持续集成与持续部署(CI/CD)、测试驱动开发(TDD)三个方面,详细介绍这些技术如何改变传统的测试流程,帮助团队更快地发现和修复缺陷,最终实现更高质量的软件交付。
472 67
|
网络协议 物联网 5G
K3S 系列文章 -5G IoT 网关设备 POD 访问报错 DNS 'i/o timeout' 分析与解决
K3S 系列文章 -5G IoT 网关设备 POD 访问报错 DNS 'i/o timeout' 分析与解决
|
7月前
|
传感器 存储 Java
Android 3D效果的实现
本文详细讲解了如何在Android中实现3D效果,基于官方Demo并结合实际需求进行调整。通过传感器(Sensor)获取设备旋转数据,利用OpenGL ES绘制3D立方体,实现了动态旋转的视觉效果。文章分为需求分析、效果展示、实现步骤及源码解析,涵盖传感器注册与注销、OpenGL核心方法使用等内容,适合初学者学习参考。文末附完整代码,便于实践操作。
243 0
Android 3D效果的实现
|
8月前
|
存储 弹性计算 Linux
阿里云服务器购买流程参考:快速、自定义、活动三种购买方式详解与流程指南
对于初次接触阿里云服务器的用户来说,选择合适的购买方式并了解详细的购买流程至关重要,阿里云提供了快速购买、自定义购买和活动购买等多种购买方式,以满足不同用户的需求。本文将为大家展示阿里云服务器的三种主要购买方式:快速购买、自定义购买以及通过活动购买,以供大家了解具体的流程,帮助用户轻松上手,快速搭建高效、稳定的云端环境。
357 10
|
11月前
|
存储 人工智能 Cloud Native
AI年味之关于春节你有什么想分享的故事?
本文介绍了一项名为「AI年味系列活动」的创新春节庆祝方式。活动通过阿里云云原生应用开发平台CAP和百炼模型服务,利用AI技术为用户带来别具一格的春节体验。参与者可以用一周时间创作如春联、藏头诗、创意贺卡等作品,优秀作品将署名展示。文中还详细描述了如何部署和使用该平台,包括创建项目、配置参数、访问示例应用及生成视频的具体步骤。通过简化操作流程、提高制作效率、个性化内容定制和降低制作成本,AI有声绘本读物为春节增添了独特的“年味”。
|
缓存 资源调度 前端开发
前端研发链路之包管理器
本文首发于微信公众号“前端徐徐”。作者徐徐将探讨前端研发链路中的包管理器,分析 Npm、Yarn 和 Pnpm 的特点与应用场景,帮助开发者选择最适合项目的包管理工具,提升开发效率和项目稳定性。文章涵盖包管理器的基本概念、解决的问题、组成部分及各工具的优缺点对比。
252 2
|
存储 JavaScript 小程序
vue 封装的微信 小程序,获取用户信息并存储
vue 封装的微信 小程序,获取用户信息并存储
|
程序员 Go 网络架构
不看就落后了,Go 1.22 中更好的http router
不看就落后了,Go 1.22 中更好的http router
|
消息中间件 JSON Java
离线数仓(四)【数仓数据同步策略】(4)
离线数仓(四)【数仓数据同步策略】
|
消息中间件 前端开发 算法
【十七】RabbitMQ基础篇(延迟队列和死信队列实战)
【十七】RabbitMQ基础篇(延迟队列和死信队列实战)
287 1