日期时间
GMT // 格林尼治标准时间
UTC // 协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC(Universal Coordinated Time)。
时间戳 // 1970年1月1日午夜到指定日期(字符串)的毫秒数
// Q1: UTC和GMT的区别?
1. UTC是根据原子钟来计算时间,而GMT是根据地球的自转和公转来计算时间。
2. UTC是现在用的时间标准,GMT是老的时间计量标准。UTC更加精确,由于现在世界上最精确的原子钟50亿年才会误差1秒,可以说非常精确。
3. 中国 = UTC+8
4. UTC === GMT
5. ISO标准 该标准称为 ISO-8601 ,格式为: YYYY-MM-DDTHH:mm:ss.sssZ
// 获取时间戳
1. Date.parse(new Date()) // 精确到秒 1641797638000
2. new Date().getTime() // 精确到毫秒 1641797738323
3. new Date().valueOf() // 精确到毫秒 1641797779378
// parse()/getTime()/valueOf() setDate()
1. parse() // 返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
2. getTime() // 返回 1970 年 1 月 1 日至今的毫秒数。
3. valueOf() // 返回 Date 对象的原始值
3. setDate() // 设置 Date 对象中月的某一天 (1 ~ 31)。
// 其他new Date().api()
1. toDateString() // 'Mon Jan 10 2022'
2. toISOString() // '2022-01-10T07:12:59.918Z'
3. toJSON() // '2022-01-10T07:12:59.918Z'
4. toLocaleDateString() // '2022/1/10'
5. toLocaleTimeString() // '下午3:13:35'
6. toTimeString() // '15:15:08 GMT+0800 (中国标准时间)'
7. toString() // 'Mon Jan 10 2022 15:15:40 GMT+0800 (中国标准时间)'
8. toUTCString() // toUTCString() 'Mon, 10 Jan 2022 07:16:14 GMT'
时间转换
// GMT => 标准时间(YYYY-MM-DD hh:mm:ss)
export function GMTToSecond(time) {
function addDateZero(num) {
return (num < 10 ? "0" + num : num);
}
function addDateTwoZero(num) {
if(num<100&&num>=10){
return "0"+num
}
else if(num<10){
return "00"+num
}
else{
return num
}
}
let date = new Date(time)
let Str=date.getFullYear() + '-' +
addDateZero(date.getMonth() + 1) + '-' +
addDateZero(date.getDate()) + ' ' +
addDateZero(date.getHours()) + ':' +
addDateZero(date.getMinutes()) + ':' +
addDateZero(date.getSeconds())
return Str
}
// GMT => 标准时间(YYYY-MM-DD hh:mm:ss:sss)
export function GMTToStr(time) {
function addDateZero(num) {
return (num < 10 ? "0" + num : num);
}
function addDateTwoZero(num) {
if(num<100&&num>=10){
return "0"+num
}
else if(num<10){
return "00"+num
}
else{
return num
}
}
let date = new Date(time)
let Str=date.getFullYear() + '-' +
addDateZero(date.getMonth() + 1) + '-' +
addDateZero(date.getDate()) + ' ' +
addDateZero(date.getHours()) + ':' +
addDateZero(date.getMinutes()) + ':' +
addDateZero(date.getSeconds())+ '.'+
addDateTwoZero(date.getMilliseconds())
return Str
}
Date.format(‘xxx’) 格式输出
/**
* 时间戳 => 时间
* @param {String} timestamp 时间戳
* @return {Object} 时间
*/
export function timestampToDate(timestamp) {
let date = new Date();
date.setTime(timestamp * 1000);
return date
}
timestampToDate('1484222693') // Thu Jan 12 2017 20:04:53 GMT+0800 (中国标准时间)
/**
* 时间戳转特点格式时间
* @param {String} timestamp 时间戳
* @return {String} 特点格式时间
*/
function timestampFormatDate(timestamp, format) {
let date = timestampToDate(timestamp)
return date.format(format)
}
timestampFormatDate('1484222693', 'yyyy-MM-dd'); // 2017-01-12
/**
* 获取特定格式时间
* @param {Object} date 时间
* @param {String} format 格式
* @return {String} 特定格式的时间
* @files {String} src/plugins/time.js
* 例如:
* var now = new Date(); // Mon Jan 16 2017 14:32:22 GMT+0800 (中国标准时间)
* now.format('yyyy-MM-dd h:m:s'); // 2017-01-16 14:32:22
*/
const _default = {
install: function (App, options) {
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1
.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k])
.substr(("" + o[k]).length)));
}
}
return fmt;
}
}
}
export default _default;
// 其二:function(now, format){}
//太平时间转换为标准时间
function formateDate(datetime) {
function addDateZero(num) {
return (num < 10 ? "0" + num : num);
}
let d = new Date(datetime);
let formatdatetime = d.getFullYear() + '-' + addDateZero(d.getMonth() + 1) + '-' + addDateZero(d.getDate());
return formatdatetime;
},
夏令时和冬令时(美国)
1.GMT
格林威治标准时间GMT
2.UTC
UTC指的是Coordinated Universal Time- 世界协调时间(又称世界标准时间、世界统一时间)
所以基本上UTC的本质强调的是比GMT更为精确的世界时间标准,不过对于现行表款来说,GMT与UTC的功能与精确度是没有差别的。
3.PDT
PDT 是 Pacific Daylight Time 的缩写。
美国夏季始于每年4月的第1个周日,止于每年10月的最后一个周日。夏令时比正常时间早一小时,与PDT时间相对应的是PST , Pacific Standard Time 。 夏时制结束后就是PST。
4.PST
PST是太平洋标准时间(西八区),与北京时间(东八区)时差-16个小时,也就是北京时间减去16就是PST时间。而PDT比PST早1个小时,就是说PDT与北京时间时差为-15小时。
美国横跨西五区至西十区,共六个时区。每个时区对应一个标准时间,从东向西分别为
东部时间(EST)(西五区时间)、
中部时间(CST)(西六区时间)、
山地时间(MST)(西七区时间)、
太平洋时间(西部时间)(PST)(西八区时间)、
阿拉斯加时间(AKST)(西九区时间)
夏威夷时间(HST)(西十区时间),
按照“东早西晚”的规律,各递减一小时。
美国标准时间 | 与北京时间时差(小时) |
---|---|
HST | -18 |
AKST | -17 |
PST | -16 |
MST | -15 |
CST | -14 |
EST | -13 |
夏季始于每年4月的第1个周日,止于每年10月的最后一个周日。也称为DST: Daylight Saving Time
美国夏季时间 | 与北京时间时差(小时) |
---|---|
HDT | -17 |
AKDT | -16 |
PDT | -15 |
MDT | -14 |
CDT | -13 |
EDT | -12 |
版权声明:本文为qq_35389653原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。