new Date()
- 在不传参的情况下,新创建的对象自动获得当前日期和时间。
- 要创建指定日期,应该传入该日期的毫秒数,所以提供了两个方法:
Date.parse()
: 将按照格式传入的日期转换为毫秒数,支持哪些格式可以自行查阅, 类似与这样Date.prase("2004-05")
Date.UTC()
: 将按照格式传入的日期转换为毫秒数,注意返回的是UTC
国际协调时间,支持哪些格式可以自行查阅,类似于这样Date.UTC(2005, 0, 1)
- 当不使用上面的方法转换毫秒数,而是直接将日期写入
new Date()
当中的时候,会在隐士调用前面两个方法当中的一个
Date.now()
返回的是调用这个方法的时候的日期和时间的毫秒数,用途如下:
var start = Date.now()
// 这里执行一段代码
var top = Date.now()
var result = stop-start
继承的方法
这里的方法都是对整个时间进行格式化,下节要接着介绍的日期格式化,是对整个日期当中的一部分进行格式化,toUTCString
例外。
重写了一些方法,如下:
toLocalString()
: 根据浏览器设置的地区想对应的格式返回日期。不过不同浏览器中返回的结果不一样。所以如果要显示在界面上,请不要使用。toString()
: 返回带有该地区的时区信息的日期和时间。不过不同浏览器中返回的结果不一样。所以如果要显示在界面上,请不要使用。 并且得到的字符串格式Date
构造函数能够识别。valueOf()
: 返回日期的毫秒表示,注意返回的不是UTC
时间。可以用来比较时间,如下
var date1 = new Date(2007, 0, 1)
var date2 = new Date(2007, 1, 1)
data1.valueOf() < date2.valueOf() // true
日期格式化方法
- 带有
Date
表示年月日星期几 - 带有
time
表示时分 - 带有
Locale
表示相对于本地时区 - 带有
UTC
代表此时的UTC
国际协调时间(1970年1月1日零时
)
上面的前两点仅仅适用于下面的几个方法
toDateString()
: 得到的字符串格式Date
构造函数也能够识别toTimeString()
toLocaleDateString()
toLocaleTimeString()
toUTCString()
上面的方法在浏览器当中输出也是因浏览器而异,所以如果要显示在界面上,请不要使用
日期/时间的取得和设置方法
这里查看JavaScript高级程序设计第三版的102
页。查看的 需要注意,其实列出的方法是按照下面的顺序来列举的,并
- 日期的毫秒数的取得和设置
- 日期的年、月、日、星期几,时间的时、分、秒、毫秒的取得和设置,并且取得和设置都分为常规和
UTC
的方法 getTimeZoneOffset()
: 返回本地时间与UTC
时间相差的分钟数,可以将得到的分钟数转换为毫秒数。
时区转换的例子:
function(hours) { //参数表示与UTC时间相差的小时
var date = new Date()
var millseconds = date.getTime() + date.getTimezoneOffset()*60*1000
var result = new Date(millseconds)
}