JavaScript原生对象之Date对象的属性和方法详解

创建 Date 对象的语法:


代码如下:

//Date 对象会自动把当前日期和时间保存为其初始值。
new Date();

//value-毫秒:代表自世界协调时1970年1月1日00:00:00开始的数值。
new Date(value);

//dateString-日期字符串:表示日期的字符串值。此字符串应该是在parse方法中识别的格式。
new Date(dateString);

//year-年:代表年份的整数值。为了避免2000年问题最好指定4位数的年份; 使用1998, 而不要用98
//month-月:代表月份的整数值从0(1月)到11(12月)
//day-日:代表一个月中的第几天的整数值,从1开始
//hour-小时:代表一天中的小时数的整数值 (24小时制)
//minute-分钟
//second-秒
//millisecond-毫秒
new Date(year, month, day [, hour, minute, second, millisecond]);

Date()

Date() 方法可返回当天的日期和时间。

代码如下:

console.log(Date());  //"Tue Sep 17 2013 12:22:55 GMT+0800 (中国标准时间)"

parse()

parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。

Date.parse(datestring)

参数datestring是必需的,表示日期和时间的字符串。

注意,该方法是 Date 对象的静态方法。一般采用 Date.parse() 的形式来调用,而不是通过 dateobject.parse() 调用该方法。

代码如下:

console.log(Date.parse(Date()));        //1379392301000
console.log(Date.parse("Aug 9, 1995")); //807897600000

UTC()

UTC() 方法可根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。

Date.UTC(year, month, day, hours, minutes, seconds, ms)

参数year是必需的,表示年份的四位数字;month是必需的,表示月份的整数,介于 0 ~ 11;day是可选的,表示日期的整数,介于 1 ~ 31;hours是可选的,表示小时的整数,介于 0 ~ 23;minutes是可选的,表示分钟的整数,介于 0 ~ 59;seconds是可选的,表示秒的整数,介于 0 ~ 59;ms是可选的,表示毫秒的整数,介于 0 ~ 999。

Date.UTC() 是一种静态方法。Date.UTC() 方法的参数指定日期和时间,它们都是 UTC 时间,处于 GMT 时区。指定的 UTC 时间将转换成毫秒的形式,这样构造函数 Date() 和方法 Date.setTime() 就可以使用它了。

ECMAScript中的Date类型是早期Java中的Java.util.Date类基础上构建的。为此,Date类型使用来自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的285616年。

注意:parse()日期和时间都基于本地时区而非GMT来创建。而UTC()是基于GMT来创建。他们的参数也不相同。

GMT:世界时,即格林尼治所在地的标准时间。

代码如下:

var d = new Date();

console.log(Date.parse(d));  //1379393562000
console.log(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds()));  //1379422362020

ECMAScript5添加了Data.now()方法,返回表示调用这个方法时的日期和时间的毫秒数。IE9才开始支持,不过我们可以通过 + 操作符来把Data对象转换成字符串,得到同样的值。

代码如下:

var d1 = Date.now();
var d2 = + new Date();

console.log(d1);  //1379393793104
console.log(d2);  //1379393793104

JavaScript中的日期转换非常的诡异,不仅会因为参数不同而有不同的解释结果,而且在各个浏览器中的表现也有所不同,如下:

代码如下:

var d1 = new Date("2012/03/13");
var d2 = new Date("2012-03-13");
var d3 = new Date("2012-3-13");

console.log(d1);  //Tue Mar 13 2012 00:00:00 GMT+0800 (中国标准时间)
console.log(d2);  //Tue Mar 13 2012 08:00:00 GMT+0800 (中国标准时间)
console.log(d3);  //Tue Mar 13 2012 00:00:00 GMT+0800 (中国标准时间)

在不同浏览器中的表现参考:http://dygraphs.com/date-formats.html

为了避免这些问题,请遵照下面的建议:

1.坚持使用 ”YYYY/MM/DD” 的日期字符串格式
2.避免使用带有连字号的日期字符串格式”YYYY-MM-DD”
3.要指定四位数的年份
4.Chrome浏览器的比其他浏览器能接受更多的日期字符串,所以如果在Chrome浏览器没有问题,不代表其他浏览器没有问题

更多信息可以参考:JavaScript and Dates, What a Mess!SO中的讨论

get系列方法

getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。注意不要使用getYear()。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate() 根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay() 根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth() 根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear() 根据世界时从 Date 对象返回四位数的年份。
getUTCHours() 根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes() 根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds() 根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。

set系列方法

setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setFullYear() 设置 Date 对象中的年份(四位数字)。注意不要使用setYear()方法。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
setTime() 以毫秒设置 Date 对象。
setUTCDate() 根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth() 根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear() 根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours() 根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes() 根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds() 根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。

toString系列方法

toString() 把 Date 对象转换为字符串,toString()总是返回一个用美式英语表达的字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。

代码如下:

var d = new Date();

console.log(d);                      //Tue Sep 17 2013 13:37:04 GMT+0800 (中国标准时间)
console.log(d.toString());           //Tue Sep 17 2013 13:37:04 GMT+0800 (中国标准时间)
console.log(d.toTimeString());       //13:37:04 GMT+0800 (中国标准时间)
console.log(d.toDateString() );      //Tue Sep 17 2013
console.log(d.toUTCString());        //Tue, 17 Sep 2013 05:37:04 GMT
console.log(d.toLocaleString());     //2013年9月17日 下午1:37:04
console.log(d.toLocaleTimeString()); //下午1:37:04
console.log(d.toLocaleDateString()); //2013年9月17日

注意toLocaleString()系列方法可以接收参数,来确定按照什么习惯来输出,参考:MDN

代码如下:

var d = new Date();

console.log(d.toLocaleString("ko-KR"));  //2013년 9월 17일 오후 1:48:24

(0)

相关推荐

  • JavaScript 中Date对象的格式化代码方法汇总

    JavaScript默认的时间格式我们一般情况下不会用,所以需要进行格式化,下面说说我总结的JavaScript时间格式化方法. 很多时候,我们可以利用JavaScript中Date对象的内置方法来格式化,如: var d = new Date(); console.log(d); // 输出:Mon Nov 04 2013 21:50:33 GMT+0800 (中国标准时间) console.log(d.toDateString()); // 日期字符串,输出:Mon Nov 04 2013

  • 浅谈JavaScript中Date(日期对象),Math对象

    Date对象 1.什么是Date对象? 日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒). 语法:var Udate=new Date(); 注:初始值为当前时间(当前电脑系统时间). 2.Date对象常用方法: 3.Date方法实例 复制代码 代码如下: var newTime=new Date();//获取当前时间             var millSecond=Date.now();//当前日期转换成的毫秒数             var fullYear=n

  • 浅谈JavaScript Date日期和时间对象

    Date 日期和时间对象 1. 介绍 Date对象,是操作日期和时间的对象.Date对象对日期和时间的操作只能通过方法. 2. 构造函数 2.1 new Date() :返回当前的本地日期和时间 参数:无 返回值: {Date} 返回一个表示本地日期和时间的Date对象. 示例: 复制代码 代码如下: var dt = new Date(); console.log(dt); // => 返回一个表示本地日期和时间的Date对象 2.2 new Date(milliseconds) :把毫秒数转

  • 详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)

    问题描述: 使用JavaScript生成一个倒数7天的数组. 比如今天是10月1号,生成的数组是["9月25号","9月26号","9月27号","9月28号","9月29号","9月30号","10月1号"]. 这个难点就是需要判断这个月份(可能还需要上一个月份)是30天还是31天,而且还有瑞年的2月28天或者29天. 解答思路: 不需要那么复杂,在js中非常简单,

  • JavaScript Date对象详解

    本篇主要介绍 Date 日期和时间对象的操作,具体内容如下 目录 1. 介绍:阐述 Date 对象. 2. 构造函数:介绍 Date 对象的构造函数new Date()几种方式. 3. 实例方法:介绍 Date 对象的get.set等实例方法. 4. 静态方法:介绍 Date 对象的静态方法:Date.now(). Date.parse()等. 5. 实际操作:介绍 Date 对象的一些示例:获取倒计时.比较2个Date对象的大小等等. 一. 介绍 1.1 说明 Date对象,是操作日期和时间的

  • javascript转换日期字符串为Date日期对象的方法

    本文实例讲述了javascript转换日期字符串为Date日期对象的方法.分享给大家供大家参考.具体如下: 这里实现把一个日期字符串如"2014-4-28 12:31:45"转换为Date对象: 方法一: 复制代码 代码如下: var strArray=str.split(" "); var strDate=strArray[0].split("-"); var strTime=strArray[1].split(":");

  • 扩展JS Date对象时间格式化功能的小例子

    在自己JS代码中引入一下代码: 复制代码 代码如下: Date.prototype.format =function(format){    var o = {            "M+" : this.getMonth()+1, //month            "d+" : this.getDate(), //day            "h+" : this.getHours(), //hour            "

  • 基于js对象,操作属性、方法详解

    一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascript中,已经存在一些标准的类,例如Date.Array.RegExp.String.Math.Number等等,这为我们编程提供了许多方便.但对于复杂的客户端程序而言,这些还远远不够. 与Java不同,Java2提供给我们的标准类很多,基本上满足了我们的编程需求,但是Javascript提供的标准类很

  • Vue计算属性与监视属性实现方法详解

    目录 一.计算属性 1.插值语法实现 2.通过方法实现 3.通过计算属性 二.监视属性 三.深度监视 一.计算属性 在开发中,可以有这样的需求,在属性(date)中,有fistName和lastName两个属性,需要将两个属性拼接起来,这种需求也很简单,有以下实现方式 1.插值语法实现 直接在body中将两个数据拼接 <div id="root"> 姓:<input type="text" v-model="fistName"&

  • javascript ES6中set集合、map集合使用方法详解与源码实例

    set与map理解 ES6中新增,set集合和map集合就是一种数据的存储结构(在ES6之前数据存储结构只有array,object),不同的场景使用不同的集合去存储数据 set集合 Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用. set集合语法: //创建一个set集合,传参为一个可迭代的对象 const s1 = new Set(iterable); API 名称 类型 简介 Set.add() 原型方法 添加数据 Set.has() 原型方法 判断是否存在一个数据 S

  • Java为实体类动态添加属性的方法详解

    目录 添加依赖 代码 测试 可以给已有实体类动态的添加字段并返回新的实体对象,不影响原来的实体对象结构. 添加依赖 <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>commons

  • python pandas修改列属性的方法详解

    使用astype如下: df[[column]] = df[[column]].astype(type) type即int.float等类型. 示例: import pandas as pd data = pd.DataFrame([[1, "2"], [2, "2"]]) data.columns = ["one", "two"] print(data) # 当前类型 print("----\n修改前类型:&quo

  • Three.js中网格对象MESH的属性与方法详解

    前言 本文主要给大家介绍了关于Three.js网格对象MESH的属性与方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 创建一个网格需要一个几何体,以及一个或多个材质.当网格创建好之后,我们就可以将它添加到场景中并进行渲染.网格对象提供了几个属性和方法用于改变它在场景中的位置和显示效果. 如下: 还有一个属性就是visible属性,默认为true,如果设置为false,THREE.Mesh将不渲染到场景中. mesh对象的前三个属性position,rotation和scal

  • JavaScript实现二叉树定义、遍历及查找的方法详解

    本文实例讲述了JavaScript实现二叉树定义.遍历及查找的方法.分享给大家供大家参考,具体如下: 二叉树(binary tree) 在写这篇文章之前说一下数据结构和算法这个系列,这个系列包含了很多东西,比如啥子排序,线性表,广义表,树,图这些大家都是知道的,但是这些东西我们学了之后工作中能用到的又有多少呢,据我所知绝大部分公司,一线码农,屌丝,程序猿是用不到这些东西,既然这样为啥子我还要强调这个系列呢,本人觉得算法和数据结构是程序的基本功,前提想脱离一线码农,普通程序猿行列,说得通俗一点就是

  • JavaScript原生对象之Date对象的属性和方法详解

    创建 Date 对象的语法: 复制代码 代码如下: //Date 对象会自动把当前日期和时间保存为其初始值. new Date(); //value-毫秒:代表自世界协调时1970年1月1日00:00:00开始的数值. new Date(value); //dateString-日期字符串:表示日期的字符串值.此字符串应该是在parse方法中识别的格式. new Date(dateString); //year-年:代表年份的整数值.为了避免2000年问题最好指定4位数的年份; 使用1998,

  • JavaScript原生对象之String对象的属性和方法详解

    length length 属性可返回字符串中的字符数目. length 是根据字符串的UTF-16编码来获取长度的,空字符串长度为0.length 不可修改. charAt() charAt() 方法可返回指定位置的字符.注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串. stringObject.charAt(index) 参数index是必需的.表示字符串中某个位置的数字,即字符在字符串中的下标.字符串中第一个字符的下标是 0.如果

  • javascript动态添加、修改、删除对象的属性与方法详解

    现在介绍如何为一个对象添加.修改或者删除属性和方法.在其他语言中,对象一旦生成,就不可更改了,要为一个对象添加修改成员必须要在对应的类中修改,并重新实例化,而且程序必须经过重新编译.JavaScript 中却非如此,它提供了灵活的机制来修改对象的行为,可以动态添加.修改.删除属性和方法.例如首先使用类Object来创建一个空对象user:var user=new Object(); 1.添加属性这时user 对象没有任何属性和方法,显然没有任何用途.但可以为它动态的添加属性和方法,例如:user

随机推荐