您的位置:首页 > Web前端 > JavaScript

JS之Date对象和获取系统当前时间

2009-03-29 11:45 781 查看
一、Date对象

每天一对象,今天来看看Date对象,相对于时间大家一定很熟悉,应为以前在网站中很多地方都会遇到这样的时间特效。温故而知新,今天我们来回忆一下Date对象。

我们首先来看看他的定义:

1 dateObj = new Date()

2 dateObj = new Date(dateVal)

3 dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])

4

其中:

dateObj
必选项。要赋值为 Date 对象的变量名。
dateVal
必选项。如果是数字值,dateVal 表示指定日期与 1970 年 1 月 1 日午夜间全球标准时间的毫秒数。如果是字符串,则 dateVal 按照 parse 方法中的规则进行解析。dateVal 参数也可以是从某些 ActiveX® 对象返回的 VT_DATE 值。
year
必选项。完整的年份,比如,1976(而不是 76)。
month
必选项。表示的月份,是从 0 到 11 之间的整数( 1 月至 12 月)。
date
必选项。表示日期,是从 1 到 31 之间的整数。
hours
可选项。如果提供了 minutes 则必须给出。表示小时,是从 0 到 23 的整数(午夜到 11pm)。
minutes
可选项。如果提供了 seconds 则必须给出。表示分钟,是从 0 到 59 的整数。
seconds
可选项。如果提供了 milliseconds 则必须给出。表示秒钟,是从 0 到 59 的整数。
ms
可选项。表示毫秒,是从 0 到 999 的整数。
Date 对象保存以毫秒为单位表示特定时间段。如果某个参数的值大于其范围或为负数,则存储的其他值将做相应的调整。例如,如果指定 150 秒,JScript 将该数字重新定义为 2 分 30 秒。

如果数字为 NaN,则该对象不代表特定的时间段。如果未向 Date 对象传递参数,它将被初始化为当前时间 (UTC)。在能够使用该对象前必须为其赋值。

Date 对象能够表示的日期范围约等于 1970 年 1 月 1 日前后各 285,616 年。

Date 对象具有两个不创建 Date 对象就可以调用的静态方法。它们是 parseUTC

Date对象的方法很多,也很简单在这里就不列出了,OK,See Next!

特别注意:

**************************************************************

var myDate = new Date(2006,11,23);

alert("year="+myDate.getYear()+"******month="+myDate.getMonth()+"********day="+myDate.getDate());

运行之后的结果是 year=2006 ******month=11********day=23

**************************************************************

这样显示都很正常,当new Date的时候传进去的月份为12的时候,就出现的问题。

**************************************************************

var myDate = new Date(2006,12,23);

alert("year="+myDate.getYear()+"******month="+myDate.getMonth()+"********day="+myDate.getDate());

运行之后的结果是 year=2007 ******month=0********day=23

**************************************************************

很纳闷的一件事情。最后查资料得知month这个参数的值是0~11的,不能传入12的这个值。解决办法就是在传值的时候把month-1,然后在外面取的时候再+1。不知谁还有更好的办法。

二、获取系统当前时间

<script language="JavaScript">

//获取日期 2007-04-29 16:41

var now = new Date(); //获取系统日期,即Sun Apr 29 16:41:48 UTC+0800 2007

var yy = now.getYear(); //获取年,即2007

var mm = now.getMonth() + 1; //获取月,即04

var dd = now.getDay(); //获取该天的星期值

//获取时间

var hh = now.getHours(); //获取小时,即16

var mm = now.getMinutes(); //获取分钟,即41

var ss = now.getTime() % 60000; //获取时间,因为系统中时间是以毫秒计算的,

//所以秒要通过余60000得到。

ss = (ss - (ss % 1000)) / 1000; //然后,将得到的毫秒数再处理成秒

var clock = hh+':'; //将得到的各个部分连接成一个日期时间

if (mm < 10) clock += '0'; //字符串

clock += mm+':';

if (ss < 10) clock += '0';

clock += ss;

</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: