从头开始学JavaScript (十三)——Date类型

时间:2022-05-24 20:07:32

从头开始学JavaScript (十三)——Date类型

说明:UTC:国际协调日期

GMT:格林尼治标准时间

一、date类型的创建

使用new操作符和Date()构造函数

var now=new Date();

传入参数:Date.parse()和Date.UTC()

方法 描述 备注及栗子
parse(datestring) 指定的日期和时间据 1970/1/1 午夜(GMT 时间)之间的毫秒数 静态方法.
语法:Date.parse(datestring)
 <script type="text/javascript">

     var d = Date.parse("Jan 1, 2015");
document.write(d); </script>

UTC(year,month,day,hours,

minutes,seconds,ms)

根据世界时间,获得一个日期,
然后返回1970年1月1日午夜到该日期的毫秒数
静态方法.
year必需。表示年份的四位数字
month必需。表示月份的整数,介于 0 ~ 11
day必需。表示日期的整数,介于 1 ~ 31
hours可选。表示小时的整数,介于 0 ~ 23
minutes可选。表示分钟的整数,介于 0 ~ 59
seconds可选。表示秒的整数,介于 0 ~ 59
ms可选。表示毫秒的整数,介于 0 ~ 999
  <script type="text/javascript">
var d = Date.UTC(2015,1,21);
document.write(d);
</script>

在调用Date构造函数而不传递参数的情况下,新创建的对象自动获得当前日期和时间。

二、继承的方法

方法 描述 备注及栗子
valueOf() 返回日期的毫秒表示
  <script type="text/javascript">
var date1 = new Date(2015, 0, 21);
var date2 = new Date(2015, 1, 20);
alert(date1.valueOf()); //毫秒数
alert(date1 < date2); //true
alert(date1 > date2); //false
</script>
toString() 把 Date 对象转换为字符串

 输出格式因浏览器而异

<script type="text/javascript">
var date1 = new Date(2015, 0, 21);
var date2 = new Date(2015, 1, 20);
document.write(date1.toString());
//Wed Jan 21 2015 00:00:00 GMT+0800 (中国标准时间)
</script>
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串

输出格式因浏览器而异

<script type="text/javascript">
var date1 = new Date();
var date2 = new Date(2015, 1, 20);
document.write(date1.toLocaleString());
//2015/1/21 下午2:51:51
</script>

三、日期格式化方法

方法 描述
toDateString() 把 Date 对象的时间部分转换为字符串
toTimeString() 把 Date 对象的日期部分转换为字符串
toUTCString() 根据世界时,把 Date 对象转换为字符串
toLocaleDateString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串
toLocaleTimeString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串

针对以上方法举个栗子

 <script type="text/javascript">
var date1 = new Date();
document.write(date1.toDateString()+"</br>"); //Wed Jan 21 2015
document.write(date1.toTimeString()+"</br>"); // 15:00:04 GMT+0800 (中国标准时间)
document.write(date1.toLocaleDateString()+"</br>"); //2015/1/21
document.write(date1.toLocaleTimeString()+"</br>"); //下午3:00:04
document.write(date1.toUTCString()+"</br>"); //Wed, 21 Jan 2015 07:00:04 GMT
</script>

以上这些方法的输出也是因浏览器而异,我用的是chrome浏览器

四、日期/时间组件方法

方法 描述 备注
getFullYear() 返回年(四位数字)  
getDate() 返回一个月中的某一天(1 ~ 31)  
getDay() 返回一周中的某一天(0 ~ 6) 返回值是0(周日)到6(周日)之间的一个整数
getMonth() 返回月份(0 ~ 11)  
getHours() 返回小时(0 ~ 23)  
getMinutes() 返回分钟(0-59)  
getSeconds() 返回秒(0-59)  
getMilliseconds() 返回毫秒(0-999)  
getTime() 返回1970.1.1至今的毫秒  
setFullYear(year,month,day) 设置对象中的年份(四位数字) year必须的,month可选的,day可选的
setMonth(month,day) 设置对象中的month(1-12) month必须的,day可选的
setDate(day) 设置对象中的day(1-31) day必须的
setHours(hour,min,sec,millisec) 设置小时(0-23) hour必须的,min可选的,sec可选的,millisec可选的
setMinutes(min,sec,millisec) 设置分钟(0-59) min必须的,sec可选的,millisec可选的
setSeconds(sec,millisec) 设置秒钟(0-59) sec必须的,millisec可选的
setMilliseconds(millisec) 设置毫秒(0-999) millisec必须的
setTime(millisec)

通过向1970.1.1午夜时间添加/减去

指定数目的毫秒来计算时间

millisec必须的

栗子在这里:

 function displayAll(){
display("Date:"+Date());
display("getFullYear:"+date.getFullYear());
display("getDate:"+date.getDate());
display("getDay:"+date.getDay());
display("getMonth:"+date.getMonth());
display("getHours:"+date.getHours());
display("getMinutes:"+date.getMinutes());
display("getSeconds:"+date.getSeconds());
display("getMilliseconds:"+date.getMilliseconds());
display("getTime:"+date.getTime());
display("<hr/>");
} function setAll(){
date.setFullYear(2009,10,1);
date.setHours(1,1,1,1);
} var date = new Date();
displayAll();
setAll();
displayAll();

输出结果:

getFullYear:2015
getDate:21
getDay:3
getMonth:0
getHours:15
getMinutes:15
getSeconds:33
getMilliseconds:67
getTime:1421824533067


getFullYear:1992
getDate:1
getDay:0
getMonth:10
getHours:1
getMinutes:1
getSeconds:1
getMilliseconds:1
getTime:720550861001


方法(UTC) 描述 备注
getTimezoneOffset() 返回本地时间与格林威治标准时间的分钟差 (GMT) -480
getUTCFullYear() 根据世界时返回月中的一天 (1 ~ 31)  
getUTCMonth() 根据世界时返回月份 (0 ~ 11)  
getUTCDate() 根据世界时返回月中的一天 (1 ~ 31)  
getUTCDay() 根据世界时返回周中的一天 (0 ~ 6)  
getUTCHours() 根据世界时返回小时 (0 ~ 23)  
getUTCMinutes() 根据世界时返回分钟 (0 ~ 59)  
getUTCSeconds() 根据世界时返回秒钟 (0 ~ 59)  
getUTCMilliseconds() 根据世界时返回毫秒(0 ~ 999)  
setUTCFullYear(year,month,day) 根据世界时 (UTC) 设置年份 year必须,含有世纪值的完整年份
month可选,0 ~ 11 之间的整数
day可选,1 ~ 31 之间的整数
setUTCMonth(month,day) 根据世界时 (UTC) 设置月份 month可选,0 ~ 11 之间的整数
day可选,1 ~ 31 之间的整数
setUTCDate(day) 根据世界时 (UTC) 设置一个月中的某一天 必需.该参数是 1 ~ 31 之间的整数
setUTCHours(hour,min,sec,millisec) 根据世界时 (UTC) 来设置指定时间的小时 hour必须,min可选,sec可选,millisec可选
setUTCMinutes(min,sec,millisec) 根据世界时 (UTC) 来设置指定时间的分钟 min必须,sec可选,millisec可选
setUTCSeconds(sec,millisec) 根据世界时 (UTC) 来设置指定时间的秒钟 sec必须,millisec可选
setUTCMilliseconds(millisec) 根据世界时 (UTC) 来设置指定时间的毫秒 millisec必须
新鲜出炉的栗子:
 <script type="text/javascript">

         display("Date:"+Date());

         function displayAll(){
display("getUTCFullYear:"+date.getUTCFullYear());
display("getUTCDate:"+date.getUTCDate());
display("getUTCDay:"+date.getUTCDay());
display("getUTCMonth:"+date.getUTCMonth());
display("getUTCHours:"+date.getUTCHours());
display("getUTCMinutes:"+date.getUTCMinutes());
display("getUTCSeconds:"+date.getUTCSeconds());
display("getUTCMilliseconds:"+date.getUTCMilliseconds());
display("<hr/>");
} function setAll(){
date.setUTCFullYear(1992,10,1);
date.setUTCHours(1,1,1,1);
} var date = new Date();
displayAll();
setAll();
displayAll(); </script>

输出结果:

getUTCFullYear:2015
getUTCDate:21
getUTCDay:3
getUTCMonth:0
getUTCHours:7
getUTCMinutes:22
getUTCSeconds:13
getUTCMilliseconds:554


getUTCFullYear:1992
getUTCDate:1
getUTCDay:0
getUTCMonth:10
getUTCHours:1
getUTCMinutes:1
getUTCSeconds:1
getUTCMilliseconds:1