当前位置:编程学习 > JAVA >>

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();
do
补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,