JavaScript时间处理函数

说起时间,首先要确定标准,即采用的是哪个时间标准。本地时间,北京时间,格林尼治时间(Greenwich Mean Time,GMT),还是 世界标准时间(Coordinated Universal Time,UTC)。UTC的时间就是等于GMT的时间。

在JavaScript中,通过new Date()创建的时间,不管给Date传入的参数是 毫秒数 还是 时间字符串(未指定GMT) 或者不传参数,都被当做本地时间以本地时间的形式表示。

以下是时间标准的测试用例:

var date = new Date();
//由于本地时间为北京时间,比格林尼治时间快8小时,因此记作 GMT+0800
console.log('date: ' + date.toString()); //date: Mon Dec 26 2011 23:13:31 GMT+0800
var utc = date.toUTCString()
console.log('utc: ' + utc); //utc: Mon, 26 Dec 2011 15:13:31 GMT
var utcInitTime = new Date(utc);
console.log('utcInitTime: ' + utcInitTime.toString()); //utcInitTime: Mon Dec 26 2011 23:13:31 GMT+0800
var index = utc.indexOf('GMT');
var utcInitTimeNoGMT = new Date(utc.substring(0, index));
console.log('utcInitTimeNoGMT: ' + utcInitTimeNoGMT);
//utcInitTimeNoGMT: Mon Dec 26 2011 15:13:31 GMT+0800


//getTime方法返回指定的日期和时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数。
var gt = date.getTime();  //当前时间为: Mon Dec 26 2011 23:13:31 GMT+0800
console.log('gt: ' + gt); //gt: 1324912411597
var gtInitTime = new Date(gt);
console.log('gtInitTime: ' + gtInitTime.toString()); //gtInitTime: Mon Dec 26 2011 23:13:31 GMT+0800
//方法getTimezoneOffset:
//返回 格林威治时间 - 本地时间 的差值,以分钟为单位,可能为负数。
var timezoneOffset = date.getTimezoneOffset() * 60 * 1000;
console.log('timezoneOffset: ' + timezoneOffset); //timezoneOffset: -28800000
//将 本地时间毫秒数 转换为 UTC时间毫秒数
var gtUTC = gt + timezoneOffset;
console.log('gtUTC: ' + gtUTC); //gtUTC: 1324883611597
var gtUTCInitTime = new Date(gtUTC);
console.log('gtUTCInitTime: ' + gtUTCInitTime); //gtUTCInitTime: Mon Dec 26 2011 15:13:31 GMT+0800

  

  

 

有关JavaScript时间处理的函数在w3school有介绍:http://www.w3school.com.cn/js/jsref_obj_date.asp

posted @ 2011-12-25 22:38  realwall  阅读(472)  评论(0编辑  收藏  举报