Javascript之Date对象详解

Date对象即日期时间对象,它的主要功能是实现对日期时间的处理

1、创建Date对象

代码如下:

var myDate = new Date();

代码如下:

var myDate = new Date("July 21, 1983 01:15:00");//此种方法为自定义日期时间的方式,格式若不对的话为提示Invalid Date
Date对象的constructor属性为:Date
document.write(myDate.constructor == Date);//输出true

2、Date()方法,返回今天的日期和时间,格式是固定格式:

代码如下:

document.write(Date());//Date()属于Javascript的内置对象,可以直接使用

输出:
Fri Oct 26 2012 10:15:22 GMT+0800
格式: 星期 月份 日期 年份 时间 时区

另:假如自定义一个Date()对象,返回结果是一样的

代码如下:

var myDate = new Date();
document.write(myDate);

Fri Oct 26 2012 10:17:09 GMT+0800

注:两者区别的地方在于:
前者只能显示当前的时间,而不能随意定义时间
例,document.write(Date("July 21, 1983 01:15:00"));
它显示的时间仍然是当前的时间:Fri Oct 26 2012 10:15:22 GMT+0800

3、getDate()方法返回月份的某一天

月份中的某一天指的是使用本地时间,其返回值是 1 ~ 31 之间的一个整数。

代码如下:

var myDate = new Date();
document.write(myDate.getDate());

输出:26

代码如下:

var myDate = new Date("July 21, 1983 01:15:00");
document.write(myDate.getDate());

输出:21

4、getDay() 方法可返回表示星期的某一天的数字,它的取值范围:0--6

代码如下:

var myDate = new Date("July 21, 1983 01:15:00");
document.write(mtDate.getDay());

输出4

为此我们可以采用Date对象和Array对象结合的方式将时间人性化显示出来,下面这种方法非常常用

代码如下:

var weekday = new Array(7);
weekday[0]="Sunday";
weekday[1]="Monday";
weekday[2]="Tuesday";
weekday[3]="Wednesday";
weekday[4]="Thursday";
weekday[5]="Friday";
weekday[6]="Saturday";
var myDate = new Date();
document.write(weekday[myDate.getDay()]);

5、getMonth(),返回月份字段,返回值是 0(一月) 到 11(十二月) 之间的一个整数

和getDay()类似,我们也采用与Array对象相结合的方式

代码如下:

var d=new Date();
var month=new Array(12);
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";
document.write("The month is " + month[d.getMonth()]);

6、getFullYear() 方法可返回一个表示年份的 4 位数字。

返回值是一个四位数,表示包括世纪值在内的完整年份,而不是两位数的缩写形式。

代码如下:

var d = new Date();
document.write(d.getFullYear());

输出:
2012

代码如下:

var born = new Date("July 21, 1983 01:15:00");
document.write("I was born in " + born.getFullYear());

输出:
1983

通过上述方法三种方法结合我们就可以得出比较人性化的时间显示,例:

代码如下:

var weekday = new Array(7);
weekday[0]="Sunday"
weekday[1]="Monday"
weekday[2]="Tuesday"
weekday[3]="Wednesday"
weekday[4]="Thursday"
weekday[5]="Friday"
weekday[6]="Saturday"
var month=new Array(12);
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";
var myDate = new Date();
document.write("Date is "+myDate.getFullYear()+" "+month[myDate.getMonth()]+" "+myDate.getDate()+" "+weekday[myDate.getDay()]);

输出为:
Date is 2012 October 19 Friday

7、getHours() 方法可返回时间的小时字段,返回值是 0 (午夜) 到 23 (晚上 11 点)之间的一个整数。

代码如下:

var born = new Date("July 21, 1983 01:15:00");
document.write(born.getHours());

输出:1
注释:由 getHours() 返回的值是一个两位的数字。
不过返回值不总是两位的,如果该值小于 10,则仅返回一位数字。

8、getMinutes() 方法可返回时间的分钟字段,返回值是 0 ~ 59 之间的一个整数。

与上述方法类似,返回值不总是两位的,如果该值小于 10,则仅返回一位数字。

9、getSeconds() 方法可返回时间的秒,返回值是 0 ~ 59 之间的一个整数。

与上述方法类似,返回值不总是两位的,如果该值小于 10,则仅返回一位数字。

10、getMilliseconds() 方法可返回时间的毫秒,毫秒字段,以本地时间显示。返回值是 0 ~ 999 之间的一个整数。

注释:由 getMilliseconds() 返回的值是一个三位的数字。

不过返回值不总是三位的,如果该值小于 100,则仅返回两位数字,如果该值小于 10,则仅返回一位数字。
下面我们有两种方式将时间显示出来:
--->方式一

代码如下:

var d = new Date();
document.write('Time is '+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds());

输出:Time is 10:52:2,缺点很明显,在秒为<10的情况下只显示了一位,其他的也类似,因此推荐第二种显示方式

--->方式二

代码如下:

function checktime(time)
{
    if(time<10)
    {
      time = '0'+time;
    }
    return time;
}
var d = new Date();
document.write('Time is '+checktime(d.getHours())+":"+checktime(d.getMinutes())+":"+checktime(d.getSeconds()));

输出:Time is 10:55:02

11、getTime() 方法可返回本地时间距 1970 年 1 月 1 日之间的毫秒数,因此可以自定义Date("Jul 26 2000");

代码如下:

var d = new Date();
document.write(d.getTime() + " milliseconds since 1970/01/01");

输出:1350615452813 milliseconds since 1970/01/01

因此我们可以根据此数得到本地时间距离1970/01/01的年数

代码如下:

var minutes = 1000*60;//一分钟有60秒,一秒有60毫秒,下面依次类推
var hours = minutes*60;
var days = hours*24;
var years = days*365;
var d = new Date();
var t = d.getTime();//获得距离1970/01/01的毫秒数
var y = t/years;
document.write("It's been: " + y + " years since 1970/01/01!");

输出:
It's been: 42.82773990521943 years since 1970/01/01!
注:此时的年份是一个小数,可以将其换成整数(其实Javascript中没有整数的区别)

最后一行修改为:

代码如下:

document.write("It's been: " + parseInt(y) + " years since 1970/01/01!");

输出:
It's been: 42 years since 1970/01/01!
parseInt(float);可以将浮点类型转换为整型

12、getTimezoneOffset() 方法可返回格林威治时间和本地时间之间的时差,以分钟为单位。

注:
getTimezoneOffset() 方法返回的是本地时间与 GMT 时间或 UTC 时间之间相差的分钟数。
实际上,该函数告诉我们运行 JavaScript 代码的时区,以及指定的时间是否是夏令时。
返回之所以以分钟计,而不是以小时计,原因是某些国家所占有的时区甚至不到一个小时的间隔。

代码如下:

var d = new Date();
document.write(d.getTimezoneOffset());

输出:
-480(东八区,8*60)

因此可以根据此方法来判断所在时区

代码如下:

function checkzone(zone)
{
    if (zone==0)
    {
        return "零时区";
    }
    else if (zone>0)
    {
    return "西"+parseInt(zone/60)+"区";
    }
    else
    {
    return "东"+parseInt(Math.abs(zone/60))+"区";
    }
}
var d = new Date();
document.write(checkzone(d.getTimezoneOffset()));

其中Math.abs()为求绝对值
以上方法是自己原创,因为地理学的不好,不知道对不对,求指正

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

parse(str);str为字符串,是一个符合时间格式的字符串

代码如下:

var minutes = 1000 * 60;
var hours = minutes * 60;
var days = hours * 24;
var years = days * 365;
var t = Date.parse("Jul 8, 2005");
var y = t/years;
document.write("It's been: " + parseInt(y) + " years from 1970/01/01");
document.write(" to 2005/07/08!");

输出为:
It's been: 35 years from 1970/01/01 to 2005/07/08!

14、setDate() 方法用于设置一个月的某一天。

setDate(day),day必需。表示一个月中的一天的一个数值(1 ~ 31)。
注,此方法是在原先对象的基础上进行修改,会改变原先数据的值
例:

代码如下:

var d = new Date();
document.write(d.getDate()+"<br>");
d.setDate(31);
document.write(d.getDate());

输出:
19
31

15、setMonth() 方法用于设置月份,与setDate()使用方法一直,也会改变原Date对象

setMonth(month,day),目前可能不支持第二个参数,month必需。一个表示月份的数值,该值介于 0(一月) ~ 11(十二月) 之间。
假如支持day参数的话,day代表的是月中某一天的数值,介于 1 ~ 31 之间。用本地时间表示。

代码如下:

var d = new Date();
document.write(d.getMonth()+" "+d.getDate()+"<br>");
d.setMonth(11,26);
document.write(d.getMonth()+" "+d.getDate());

输出为:
9 19
11 26

16、setFullYear() 方法用于设置年份。

setFullYear(year,month,day);
year 必需。表示年份的四位整数。用本地时间表示。
month 可选。表示月份的数值,介于 0 ~ 11 之间。用本地时间表示。
day 可选。表示月中某一天的数值,介于 1 ~ 31 之间。用本地时间表示。

代码如下:

var d = new Date();
d.setFullYear(1992,10,3);
document.write(d);

输出为:
Tue Nov 03 1992 11:31:58 GMT+0800

17、setHours() 方法用于设置指定的时间的小时字段。

setHours(hour,min,sec,millisec);
hour 必需。表示小时的数值,介于 0(午夜) ~ 23(晚上11点) 之间,以本地时间计(下同)。
min 可选。表示分钟的数值,介于 0 ~ 59 之间。在 EMCAScript 标准化之前,不支持该参数。
sec 可选。表示秒的数值,介于 0 ~ 59 之间。在 EMCAScript 标准化之前,不支持该参数。
millisec 可选。表示毫秒的数值,介于 0 ~ 999之间。在 EMCAScript 标准化之前,不支持该参数。

代码如下:

var d = new Date()
d.setHours(15,35,1)
document.write(d)

输出为:
Fri Oct 19 15:35:01 UTC+0800 2012

18、setMinutes() 方法用于设置指定时间的分钟字段。

setMinutes(min,sec,millisec)
min 必需。表示分钟的数值,介于 0 ~ 59 之间,以本地时间计(下同)。
sec 可选。表示秒的数值,介于 0 ~ 59 之间。在 EMCAScript 标准化之前,不支持该参数。
millisec 可选。表示毫秒的数值,介于 0 ~ 999 之间。在 EMCAScript 标准化之前,不支持该参数。

代码如下:

var d = new Date()
d.setMinutes(1)
document.write(d)

输出为:
Fri Oct 19 11:01:11 UTC+0800 2012

19、setSeconds() 方法用于设置指定时间的秒字段。

setSeconds(sec,millisec)
sec 必需。表示秒的数值,该值是介于 0 ~ 59 之间的整数。
millisec 可选。表示毫秒的数值,介于 0 ~ 999 之间。在 EMCAScript 标准化之前,不支持该参数。

20、setMilliseconds() 方法用于设置指定时间的毫秒字段。

setMilliseconds(millisec)
millisec 必需。用于设置 dateObject 毫秒字段,该参数是介于 0 ~ 999 之间的整数。

21、setTime() 方法以毫秒设置 Date 对象。

此方法是比较常用的方法,在数据库中存放Date.getTime()毫秒数,
在返回时如何显示出来呢,就是用此方法
setTime(millisec)
millisec 必需。要设置的日期和时间据 GMT 时间 1997 年 1 月 1 日午夜之间的毫秒数。
这种类型的毫秒值可以传递给 Date() 构造函数,可以通过调用 Date.UTC() 和 Date.parse() 方法获得该值。以毫秒形式表示日期可以使它独立于时区。

代码如下:

var d = new Date();
d.setTime(77771564221);
document.write(d);

输出为:
Mon Jun 19 1972 11:12:44 GMT+0800
此种方法就可以根据数据库中存放的long数据类型将其转换为了时间对象

22、toTimeString() 方法可把 Date 对象的时间部分转换为字符串,并返回结果。

代码如下:

var d = new Date();
document.write(d.toTimeString());

输出:
11:50:57 GMT+0800

23、toDateString() 方法可把 Date 对象的日期部分转换为字符串,并返回结果。

代码如下:

var d = new Date();
document.write(d.toDateString());

输出:
Fri Oct 19 2012

24、还有很多设计UTC时区的一些方法,此处没有列出,仅仅是对一般的通用较多的方法汇总了下

查看更多JavaScript的语法,大家可以关注:《JavaScript 参考教程》、《JavaScript代码风格指南》,也希望大家多多支持我们。

(0)

相关推荐

  • javascript中Date对象应用之简易日历实现

    前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛,本文将详细说明简易日历的实现思路. 效果演示 HTML说明  使用type=number的两个input分别作为年和月的输入控件,这样在高级浏览器下自带调节按钮  按照周日到周一的顺序进行星期的排列 <div class="box"> <header class='control'> <input id="conYear" class="con-i

  • javascript中Date对象的使用总结

    JSON 日期转 JS日期,我们知道,日期类型转成JSON之后,返回的数据类似这样: /Date(1379944571737)/ 但是这种日期并不能直接显示,因为根本没有人知道这是什么意思,下面提供一种JSON日期转JS日期的方式. function ConvertJSONDateToJSDate(jsondate) { var date = new Date(parseInt(jsondate.replace("/Date(", "").replace("

  • 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对象使用总结

    //全局函数 Date //Date 类的静态方法 Date.parse Date.UTC //Date 对象的建立方法 new Date() new Date(毫秒数) new Date(标准时间格式字符串) new Date(年, 月, 日, 时, 分, 秒, 毫秒) //Date 对象的更多方法 getFullYear (getUTCFullYear) getMonth (getUTCMonth) getDate (getUTCDate) getDay (getUTCDay) getHou

  • 原生JS:Date对象全面解析

    Date对象:基于1970年1月1日(世界标准时间)起的毫秒数 本文参考MDN做的详细整理,方便大家参考MDN 构造函数: 1.new Date(); 依据系统设置的当前时间来创建一个Date对象. 2.new Date(value); value代表自1970年1月1日00:00:00 (世界标准时间) 起经过的毫秒数. 3.new Date(dateString); dateString表示日期的字符串值.该字符串应该能被 Date.parse() 方法识别(符合 IETF-complian

  • javascript 玩转Date对象(实例讲解)

    前言:最近在做一个日期选择功能,在日期转换的时候经常换到晕,总结一下常用的Date对象的相关用法,方便日后直接查看使用- 1. new Date()的使用方法有: 不接收任何参数:返回当前时间: 接收一个参数x: 返回1970年1月1日 + x毫秒的值. new Date(1, 1, 1)返回1901年2月1号. new Date(2016, 1, 1)不会在1900年的基础上加2016,而只是表示2016年2月1号. 2. 使用new Date(time) 将时间转换成 Date 对象 注意:

  • Javascript之Date对象详解

    Date对象即日期时间对象,它的主要功能是实现对日期时间的处理 1.创建Date对象 复制代码 代码如下: var myDate = new Date(); 或 复制代码 代码如下: var myDate = new Date("July 21, 1983 01:15:00");//此种方法为自定义日期时间的方式,格式若不对的话为提示Invalid Date Date对象的constructor属性为:Date document.write(myDate.constructor ==

  • JavaScript操作DOM对象详解

    一.DOM基础 DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口).DOM描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM中的三个字母,D(文档)可以理解为整个Web加载的网页文档:O(对象)可以理解为类似Window对象之类的东西,可以调用属性和方法,这里我们说的是document对象:M(模型)可以理解为网页文档的树型结构. 1.节点 加载HTML页面时,Web浏览器生成一个树型结构,用来表示页面内

  • JavaScript 深层克隆对象详解及实例

     JavaScript 深层克隆对象 今天做项目,有个需求需要用到深层克隆对象,并且要求在原型链上编程 于是心血来潮索性来复习一下这个知识点,在网上找了相应的知识, 克隆对象,这名词看着高大上,其实也没什么,便是拷贝一个长的一模一样的对象 也许有初学的小伙伴在想,那还不简单么,so easy var obj1 = {name: 'payen'}; var obj2 = obj1; 这可并不是克隆对象,obj1和obj2根本就是同一个对象, 他俩指向同一个内存地址空间,拿到了同样的一个小房子 这是

  • javascript中clone对象详解

    开发中,打断对象间的引用关系,只想下个副本的情况无处不在,clone一个对象就在所难免了. JavaScript中,简单的方法就是用JSON函数,将对象stringify成字符串,再parse成一个新对象.要么就是从网上搜个代码,开源社区里面clone的代码还是有不少的. 代码虽然可以找得到,但,东西永远是别人的,动手学着码永远是个不变的主题. 自己写了两个克隆的函数: cloneOwn:克隆自定义对象的自有属性,不包括继承的属性,属性可以是基本数据类型和数组,自定义的对象,可以制定要克隆的属性

  • Javascript之Math对象详解

    Math对象不同于上述的对象,它可以说是一个公共数学类,里面有很多数学方法,用于各种数学运算 但是Math对象不需要构造,对于其中的方法直接使用即可 1.常量(即属性) E       返回算术常量 e,即自然对数的底数(约等于2.718) E 返回算术常量 e,即自然对数的底数(约等于2.718) LN2 返回 2 的自然对数(约等于0.693) LN10 返回 10 的自然对数(约等于2.302) LOG2E 返回以 2 为底的 e 的对数(约等于 1.414) LOG10E 返回以 10

  • Javascript中arguments对象详解

    在上篇文章中我们讨论了javascript中的默认参数,这篇文章,我们来讨论下javascript的arguments参数对象. 如下例的一个函数,我们如何根据传入参数的不同来做不同的处理呢? 复制代码 代码如下: function addAll () {     // What do we do here? } // Should return 6 addAll(1, 2, 3); // Should return 10 addAll(1, 2, 3, 4); 幸运的是,javascript有

  • Javascript之String对象详解

    String 对象用于处理文本(字符串). 1.创建String 复制代码 代码如下: var str = "Hello World"; var str1 = new String(str); var str = String("Hello World"); 此三种方法都可以,但是略有区别 2.length属性--->返回字符串的长度 3.anchor() 方法用于创建 HTML 锚. HTML锚是什么? 就是<a ...>...</a>

  • JavaScript预解析,对象详解

    目录 一.预解析 1.变量预解析和函数预解析 1.变量预解析 2.函数预解析 2.预解析案例 二.对象 1.创建对象的三种方式 1.利用字面量创建对象 2.利用new Object创建对象 3.利用构造函数创建对象 4.构造函数和对象 2.new关键字 3.遍历对象属性 总结 一.预解析 1.变量预解析和函数预解析 JavaScript 代码是由浏览器中的 JavaScript 解析器来执行的.JavaScript 解析器在运行 JavaScript 代码的时候分为两步:预解析和代码执行. 预解

  • JavaScript的Proxy对象详解

    目录 一.Proxy 是什么? 二.怎么用? 1.使用 Proxy 的简单实例 2.目标对象被正确修改 3.使用 set handler 做数据验证 4.扩展构造函数 总结 一.Proxy 是什么? Proxy 对象用于拦截并修改目标对象的指定操作. // 语法 const p = new Proxy(target, handler) target :目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理). handler :以函数作为属性的对象,实现拦截和自定义操作. 二.怎么用

随机推荐