《深入理解JavaScript》—— Date

(1) Date构造函数

可以通过以下四种方式调用Date函数

① new Date(year,month,date?,hours?,minutes?,seconds?,milliseconds?)

参数范围:

year: 建议直接使用4位数的年份

month: 月 0~11(0为一月份,以此类推)

date: 日 1~31

hours: 时 0~23

minutes: 分 0~59

seconds: 秒 0~59

milliseconds: 毫秒 0~999

例如:

console.log( new Date(2016,9,23,12,6,5) );  //  Date {Sun Oct 23 2016 12:06:05 GMT+0800}

② new Date(dateTimeStr)

调用这个方法可以将日期时间字符串转换成数字。

非法的字符串会将NaN传递给new Date(number)。

例如:

console.log( new Date(‘2016-9-26‘) );  //   Date {Mon Sep 26 2016 08:00:00 GMT+0800}

③ new Date(timeValue)

用1970年1月1日00:00:00UTC以来的毫秒数创建一个日期。

④ new Date()

用当前的日期和实践创建一个日期对象。相当于new Date(Date.now())。

(2) Date构造函数方法

① Date.now(): 该函数以毫秒为单位返回当前的日期和时间(从1970年1月1日00:00:00UTC开始计算)。它产生的结果等同于new Date().getTime()。

② Date.parse(dateTimeString): 该函数将dateTimeString转换成毫秒(从1970年1月1日00:00:00UTC开始计算)。如果它无法解析某字符串,便会返回NaN。

var date = Date.parse(‘2016-10-22‘);
console.log(date);  // 1477094400000

③ Date.UTC (year,month,date?,hours?,minutes?,seconds?,milliseconds?)

(3) Date原型方法

1. 时间单位的getter和setter方法

① 当地时间:

—— Date.prototype.get《Unit》()  根据当地时间返回单位时间。

—— Date.prototype.set《Unit》()  根据当地时间设置单位时间。

② 世界时间

—— Date.prototype.getUTC《Unit》()  根据世界时间返回单位时间。

—— Date.prototype.getUTC《Unit》()  根据世界时间设置单位时间。

下面是Unit可以表示的单位:

FullYear: 年,通常是四位数

Month: 月(0~11)

Date:日(1~31)

Day:(仅用于getter方法):星期(0~6);0为星期日

Hours: 时(0~23)

Minutes: 分(0~59)

Second: 秒(0~59)

Milliseconds: 毫秒(0~999)

2. 各种各样的getter和setter方法

① Date.prototype.getTime(): 返回毫秒数(从1970年1月1日00:00:00UTC开始计算)。

② Date.prototype.setTime(timeValue): 以毫秒(从1970年1月1日00:00:00UTC开始计算)为单位指定日期。

③ Date.prototype.valueOf(): 与getTime()方法等同。当日期转换成数值的时候调用这个方法。

④ Date.prototype.getTimezoneOffset(): 以分钟为单位返回当地时间与世界时间的偏差。

3. 将日期转换成字符串

① 时间(人可读)

—— Date.prototype.toTimeString(): 返回当前时区的时间。

—— Date.prototype.toLocalTimeString(): 返回时间的格式是具备地区特性的。

② Date(人可读)

—— Date.prototype.toDateString(): 返回日期。

—— Date.prototype.toLocalDateString(): 返回日期的格式是具备地区特性的。

③ 日期和时间(人可读)

—— Date.prototype.toString(): 返回的日期和时间落在当前的时区中。

—— Date.prototype.toLoaclString(): 返回的事件格式是具备地区特性的。

—— Date.prototype.toUTCString(): 返回日期和时间(世界时间)。

④ 日期和时间(机器可读)

—— Date.prototype.toISOString(): 返回的内部属性都出现在返回的字符串中。

—— Date.prototype.toJSON(): 在这方法在内部调用toISOString()方法。它是利用JSON.stringify()方法以日期为对象转换成JSON字符串。

时间: 2024-08-24 00:24:00

《深入理解JavaScript》—— Date的相关文章

全面理解Javascript中Function对象的属性和方法

函数是 JavaScript 中的基本数据类型,在函数这个对象上定义了一些属性和方法,下面我们逐一来介绍这些属性和方法,这对于理解Javascript的继承机制具有一定的帮助. 属性(Properties) arguments 获取当前正在执行的 Function 对象的所有参数,是一个类似数组但不是数组的对象,说它类似数组是因为其具有数组一样的访问性质及方式,可以由arguments[n]来访问对应的单个参数的值,并拥有数组长度属性length.还有就是arguments对象存储的是实际传递给

JavaScript异步编程(一) 深入理解JavaScript事件

JavaScript异步编程 深入理解JavaScript事件 ?事件的调度 JavaScript事件处理器在线程空闲之前不会运行 线程的阻塞 var start = new Date(); // setTimeout和setInterval的计时精度比期望值差 setTimeout(function(){ var end = new Date(); console.log('Time elapsed', end - start, 'ms'); }, 500); while(new Date -

理解javascript原型和作用域系列(7)——原型的灵活性

在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完).压个啥样,就得是个啥样,不能随便动,动一动就坏了. 而在javascript中,就没有模子了,月饼被换成了面团,你可以捏成自己想要的样子. 首先,对象属性可以随时改动. 对象或者函数,刚开始new出来之后,可能啥属性都没有.但是你可以这会儿加一个,过一会儿在加两个,非常灵活. 在jQuery的源码中,对象被创建时什么属性都没有,都是代码一步一步执行时,一个一个加上的. 其次,如果继承

深入理解JavaScript系列(17):面向对象编程之概论

介绍 在本篇文章,我们考虑在ECMAScript中的面向对象编程的各个方面(虽然以前在许多文章中已经讨论过这个话题).我们将更多地从理论方面看这些问题. 特别是,我们会考虑对象的创建算法,对象(包括基本关系 - 继承)之间的关系是如何,也可以在讨论中使用(我希望将消除之前对于JavaScript中OOP的一些概念歧义). 英文原文:http://dmitrysoshnikov.com/ecmascript/chapter-7-1-oop-general-theory/ 概论.范式与思想 在进行E

深入理解JavaScript系列(18):面向对象编程之ECMAScript实现(推荐)

介绍 本章是关于ECMAScript面向对象实现的第2篇,第1篇我们讨论的是概论和CEMAScript的比较,如果你还没有读第1篇,在进行本章之前,我强烈建议你先读一下第1篇,因为本篇实在太长了(35页). 英文原文:http://dmitrysoshnikov.com/ecmascript/chapter-7-2-oop-ecmascript-implementation/ 注:由于篇幅太长了,难免出现错误,时刻保持修正中. 在概论里,我们延伸到了ECMAScript,现在,当我们知道它OOP

深入理解JavaScript系列(37):设计模式之享元模式

介绍 享元模式(Flyweight),运行共享技术有效地支持大量细粒度的对象,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类). 享元模式可以避免大量非常相似类的开销,在程序设计中,有时需要生产大量细粒度的类实例来表示数据,如果能发现这些实例除了几个参数以外,开销基本相同的 话,就可以大幅度较少需要实例化的类的数量.如果能把那些参数移动到类实例的外面,在方法调用的时候将他们传递进来,就可以通过共享大幅度第减少单个实例 的数目. 那么如果在JavaScript中应用享元模式

深入理解JavaScript系列(12):变量对象(Variable Object)

介绍 JavaScript编程的时候总避免不了声明函数和变量,以成功构建我们的系统,但是解释器是如何并且在什么地方去查找这些函数和变量呢?我们引用这些对象的时候究竟发生了什么? 原始发布:Dmitry A. Soshnikov 发布时间:2009-06-27 俄文地址:http://dmitrysoshnikov.com/ecmascript/ru-chapter-2-variable-object/ 英文翻译:Dmitry A. Soshnikov 发布时间:2010-03-15 英文地址:h

理解JavaScript中函数的使用

函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解. JavaScript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的.通过函数对象的性质,可以很方便的将一个函数赋值给一个变量或者将函数作为参数传递.在继续讲述之前,先看一下函数的使用语法: function func1(…){…} var func2=function(…){…}; var func3=function func4(…){…}; var func5=new Function(

深入理解javascript闭包

闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量. Js代码 var n=999; function f1(){ alert(n); } f1(); // 999 另一方面,在函数外部自然无法读取函数内的局部变量. Js代码 function

深入理解JavaScript中创建对象模式的演变(原型)

创建对象的模式多种多样,但是各种模式又有怎样的利弊呢?有没有一种最为完美的模式呢?下面我将就以下几个方面来分析创建对象的几种模式: Object构造函数和对象字面量方法 工厂模式 自定义构造函数模式 原型模式 组合使用自定义构造函数模式和原型模式 动态原型模式.寄生构造函数模式.稳妥构造函数模式 第一部分:Object构造函数和对象字面量方法 我之前在博文<javascript中对象字面量的理解>中讲到过这两种方法,如何大家不熟悉,可以点进去看一看回顾一下.它们的优点是用来创建单个的对象非常方