JS如何将UTC格式时间转本地格式

2023-05-31,,

Date.prototype.format = function (format) {
var o = {
"M+": this.getMonth() + 1, //month
"d+": this.getDate(), //day
"h+": this.getHours(), //hour
"m+": this.getMinutes(), //minute
"s+": this.getSeconds(), //second
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
"S": this.getMilliseconds() //millisecond
}
if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
(this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o) if (new RegExp("(" + k + ")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length == 1 ? o[k] :
("00" + o[k]).substr(("" + o[k]).length));
return format;
}

var TempDate = new Date();

TempDate.toLocaleDateString()//2013年9月4日

TempDate.format("yyyy-MM-dd")//2013-09-04

以上为将utc格式时间转换为本地正常时间的工具类,以后在遇到时间对象转化时可以直接套用该工具类,实现时间格式的正常显示。

总结:

date对象的常用方法:

 Date 对象的方法简介:

  ·getDate      | 根据本地时间获取当前日期(本月的几号)

  ·getDay       | 根据本地时间获取今天是星期几(0-Sunday,1-Monday...)

  ·getFullYear    | 根据本地时间获取当前年份(四位数字)

  ·getHours      | 根据本地时间获取当前小时数(24小时制,0-23)

  ·getMilliseconds  | 根据本地时间获取当前毫秒数

  ·getMinutes     | 根据本地时间获取当前分钟数

  ·getMonth      | 根据本地时间获取当前月份(注意从0开始:0-Jan,1-Feb...)

  ·getSeconds     | 根据本地时间获取当前秒数

  ·getTime      | 获取UTC格式的从1970.1.1 0:00以来的毫秒数

  ·getTimezoneOffset | 获取当前时间和UTC格式的偏移值(以分钟为单位)

  ·getUTCDate     | 获取UTC格式的当前日期(本月的几号)

  ·getUTCDay     | 获取UTC格式的今天是星期几(0-Sunday,1-Monday...)

  ·getUTCFullYear   | 获取UTC格式的当前年份(四位数字)

  ·getUTCHours    | 获取UTC格式的当前小时数(24小时制,0-23)

  ·getUTCMilliseconds | 获取UTC格式的当前毫秒数

  ·getUTCMinutes   | 获取UTC格式的当前分钟数

  ·getUTCMonth    | 获取UTC格式的当前月份(注意从0开始:0-Jan,1-Feb...)

  ·getUTCSeconds   | 获取UTC格式的当前秒数

  ·getYear      | 根据本地时间获取当前缩写年份(当前年份减去1900)

  ·setDate      | 设置当前日期(本月的几号)

  ·setFullYear    | 设置当前年份(四位数字)

  ·setHours      | 设置当前小时数(24小时制,0-23)

  ·setMilliseconds  | 设置当前毫秒数

  ·setMinutes     | 设置当前分钟数

  ·setMonth      | 设置当前月份(注意从0开始:0-Jan,1-Feb...)

  ·setSeconds     | 设置当前秒数

  ·setTime      | 设置UTC格式的从1970.1.1 0:00以来的毫秒数

  ·setUTCDate     | 设置UTC格式的当前日期(本月的几号)

  ·setUTCFullYear   | 设置UTC格式的当前年份(四位数字)

  ·setUTCHours    | 设置UTC格式的当前小时数(24小时制,0-23)

  ·setUTCMilliseconds | 设置UTC格式的当前毫秒数

  ·setUTCMinutes   | 设置UTC格式的当前分钟数

  ·setUTCMonth    | 设置UTC格式的当前月份(注意从0开始:0-Jan,1-Feb...)

  ·setUTCSeconds   | 设置UTC格式的当前秒数

  ·setYear      | 设置当前缩写年份(当前年份减去1900)

  ·toString      | 将日期时间值转换成"日期/时间"形式的字符串值

  ·Date.UTC      | 返回指定的UTC格式日期时间的固定时间值

date对象使用总结:

JavaScript中Date对象使用总结
分类: Javascript类 DHTML类 2009-05-12 15:47 306人阅读 评论(1) 收藏 举报
//全局函数
Date

//Date 类的静态方法
Date.parse
Date.UTC

//Date 对象的建立方法
new Date()
new Date(毫秒数)
new Date(标准时间格式字符串)
new Date(年, 月, 日, 时, 分, 秒, 毫秒)

//Date 对象的更多方法
getFullYear (getUTCFullYear)
getMonth (getUTCMonth)
getDate (getUTCDate)
getDay (getUTCDay)
getHours (getUTCHours)
getMinutes (getUTCMinutes)
getSeconds (getUTCSeconds)
getMilliseconds (getUTCMilliseconds)
getTime
getTimezoneOffset

setFullYear (setUTCFullYear)
setMonth (setUTCMonth)
setDate (setUTCDate)
setHours (setUTCHours)
setMinutes (setUTCMinutes)
setSeconds (setUTCSeconds)
setMilliseconds (setUTCMilliseconds)
setTime

toDateString
toTimeString
toUTCString
toLocaleString
toLocaleDateString
toLocaleTimeString
toString
valueOf
--------------------------------------------------------------------------------

根据一个或多个数值建立时间对象, 及本地计时与世界标准计时的区别
--------------------------------------------------------------------------------

//先用最容易理解的方式建立一个时间对象
var d = new Date(2009, 2, 27, 12, 59, 59, 999);

alert(d); //Fri Mar 27 12:59:59 UTC+0800 2009
alert(d.toString()); //Fri Mar 27 12:59:59 UTC+0800 2009
alert(d.toUTCString()); //Fri, 27 Mar 2009 04:59:59 UTC
alert(d.toLocaleString()); //2009年3月27日 12:59:59

alert(d.toDateString()); //Fri Mar 27 2009
alert(d.toLocaleDateString()); //2009年3月27日

alert(d.toTimeString()); //12:59:59 UTC+0800
alert(d.toLocaleTimeString()); //12:59:59

/* 时间在计算机中被记为一个整数, 这是从 UTC 时间的 1970-1-1 0:0:0 到此时间的毫秒数 */
alert(d.valueOf()); //1238129999999
alert(d.getTime()); //1238129999999

/* 获取本地时间和世界标准计时的时差 */
alert(d.getTimezoneOffset()); //-480; 单位是分钟, 也就是 8 小时

/* 直接使用时间值(毫秒数, 譬如上面的: 1238129999999)建立时间对象 */
var d = new Date(1238129999999);
alert(d.toLocaleString()); //2009年3月27日 12:59:59

/* 但建立函数有 2-7 个参数时, 将是根据 "年, 月, 日, 时, 分, 秒, 毫秒" 建立时间 */
d = new Date(2009, 2, 27, 12, 59, 59, 999);
alert(d.toLocaleString()); //2009年3月27日 12:59:59

d = new Date(2009, 2, 27, 12, 59, 59);
alert(d.toLocaleString()); //2009年3月27日 12:59:59

d = new Date(2009, 2, 27, 12, 59);
alert(d.toLocaleString()); //2009年3月27日 12:59:00

d = new Date(2009, 2, 27, 12);
alert(d.toLocaleString()); //2009年3月27日 12:00:00

d = new Date(2009, 2, 27);
alert(d.toLocaleString()); //2009年3月27日 0:00:00

d = new Date(2009, 2);
alert(d.toLocaleString()); //2009年3月1日 0:00:00

/* Date 类的静态函数 UTC 的参数也是和上面一样的 2-7 个, 但 UTC 获取的是个 number */
var n = Date.UTC(2009, 0); //这只是获取了那个表示时间的毫秒数
alert(typeof n); //number

var d = new Date(n); //根据刚刚获取的数、重新建立为时间对象
alert(d.toUTCString()); //Thu, 1 Jan 2009 00:00:00 UTC
alert(d.toLocaleString()); //2009年1月1日 8:00:00
--------------------------------------------------------------------------------

无参数建立的时间对象、和用全局函数 Date 获取的时间的区别
--------------------------------------------------------------------------------

var d1 = new Date(); //返回时间对象
var d2 = Date(); //返回时间字符串

alert(d1); //Fri Feb 27 13:20:58 UTC+0800 2009
alert(d2); //Fri Feb 27 13:20:58 2009

alert(d1.valueOf()); //1235712058340
alert(d2.valueOf()); //Fri Feb 27 13:20:58 2009

alert(typeof d1); //object
alert(typeof d2); //string

//明显看出 d2 只是字符串, 它可以使用 String 类的方法, 而不能使用 Date 类的方法.
--------------------------------------------------------------------------------

使用字符串参数建立时间对象
--------------------------------------------------------------------------------

var d;
d = new Date('Fri Mar 27 12:59:59 UTC+0800 2009');
alert(d.toLocaleString()); //2009年3月27日 12:59:59

d = new Date('Fri Mar 27 12:59:59 2009');
alert(d.toLocaleString()); //2009年3月27日 12:59:59

d = new Date('Fri Mar 27 2009');
alert(d.toLocaleString()); //2009年3月27日 0:00:00

d = new Date('Mar 27 2009');
alert(d.toLocaleString()); //2009年3月27日 0:00:00

/* 可使用 Date() 返回的字符串 */
var ts = Date();
d = new Date(ts);
alert(d.toLocaleString()); //2009年3月27日 14:04:38

/* Date 类的静态函数 parse 也是需要一样的字符参数, 不过它返回的是个数字(那个毫秒数) */
var n;
n = Date.parse('Mar 27 2009');
alert(n); //1238083200000
alert(typeof n); //number

d = new Date(n);
alert(d.toLocaleString()); //2009年3月27日 0:00:00
--------------------------------------------------------------------------------

分别获取和设置: 年、月、日、时、分、秒、毫秒, 其中 "星期几" 可获取但不能设置
--------------------------------------------------------------------------------

var d = new Date(2009, 2, 27, 12, 58, 59, 999);
alert(d.toLocaleString()); //2009年3月27日 0:00:00
alert(d.getFullYear()); //2009
alert(d.getMonth()); //2 (从 0 起, 2 指 3 月)
alert(d.getDate()); //27
alert(d.getDay()); //5 (星期五)
alert(d.getHours()); //12
alert(d.getMinutes()); //58
alert(d.getSeconds()); //59
alert(d.getMilliseconds()); //999 (毫秒)

d.setFullYear(2010);
d.setMonth(1);
d.setDate(2);
d.setHours(3);
d.setMinutes(4);
d.setSeconds(5);
d.setMilliseconds(6);

alert(d.toLocaleString()); //2010年2月2日 3:04:05
alert(d.getFullYear()); //2010
alert(d.getMonth()); //1 (从 0 起, 1 指 2 月)
alert(d.getDate()); //2
alert(d.getDay()); //2 (星期二)
alert(d.getHours()); //3
alert(d.getMinutes()); //4
alert(d.getSeconds()); //5
alert(d.getMilliseconds()); //6 (毫秒)

/* 还有一个 setTime */
var d = new Date();
d.setTime(0);
alert(d.toUTCString()); //Thu, 1 Jan 1970 00:00:00 UTC

JS如何将UTC格式时间转本地格式的相关教程结束。

《JS如何将UTC格式时间转本地格式.doc》

下载本文的Word格式文档,以方便收藏与打印。