时间类型 简介 获取时间对象 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 var date = new Date (); var date = new Date ([时间戳]); date.getFullYear (); date.getMonth (); date.getDate (); date.getTime (); date.getHours (); date.getMinutes (); date.getSeconds (); var date = new Date (1398250549490 );Y = date.getFullYear () + '-' ; M = (date.getMonth ()+1 < 10 ? '0' +(date.getMonth ()+1 ) : date.getMonth ()+1 ) + '-' ; D = date.getDate () + ' ' ; h = date.getHours () + ':' ; m = date.getMinutes () + ':' ; s = date.getSeconds (); console .log (Y+M+D+h+m+s);
日期转换成时间戳 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var strtime = '2014-04-23 18:55:49:123' ;var date = new Date (strtime); var date = new Date (strtime.replace (/-/g , '/' ));time1 = date.getTime (); time2 = date.valueOf (); time3 = Date .parse (date);
Date参数形式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 new Date ("month dd,yyyy hh:mm:ss" );new Date ("month dd,yyyy" );new Date ("yyyy/MM/dd hh:mm:ss" );new Date ("yyyy/MM/dd" );new Date (yyyy,mth,dd,hh,mm,ss);new Date (yyyy,mth,dd);new Date (ms);new Date ("September 16,2016 14:15:05" );new Date ("September 16,2016" );new Date ("2016/09/16 14:15:05" );new Date ("2016/09/16" );new Date (2016 ,8 ,16 ,14 ,15 ,5 ); new Date (2016 ,8 ,16 );new Date (1474006780 );
服务器端new Date()以及moment的使用 标准时间:https://time.is/
1 2019 -06 -16T00 :32 :50. 000Z
一般时间处理用,Moment.js
http://momentjs.cn/
时区处理用moment-timezone
http://momentjs.cn/timezone/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 console .log (moment ().format ("YYYY-MM-DD HH:mm:ss" )); console .log (moment ().subtract (10 , "days" ).format ("YYYY-MM-DD" )); console .log (moment ().subtract (1 , "years" ).format ("YYYY-MM-DD" )); console .log (moment ().subtract (3 , "months" ).format ("YYYY-MM-DD" )); console .log (moment ().subtract (1 , "weeks" ).format ("YYYY-MM-DD" )); console .log (moment ().add (10 , "days" ).format ("YYYY-MM-DD" )); console .log (moment ().add (1 , "years" ).format ("YYYY-MM-DD" )); console .log (moment ().add (3 , "months" ).format ("YYYY-MM-DD" )); console .log (moment ().add (1 , "weeks" ).format ("YYYY-MM-DD" )); console .log (moment ().add (-1 ,'week' ).isoWeekday (1 ).format ('YYYY-MM-DD' )); console .log (moment ().add (-1 ,'week' ).isoWeekday (7 ).format ('YYYY-MM-DD' )); console .log (moment ().subtract (1 ,'week' ).isoWeekday (1 ).format ('YYYY-MM-DD' )); console .log (moment ().subtract (1 ,'week' ).isoWeekday (7 ).format ('YYYY-MM-DD' )); console .log (moment ().add (-1 ,'week' ).startOf ('isoWeek' ).format ('YYYY-MM-DD' )); console .log (moment ().add (-1 ,'week' ).endOf ('isoWeek' ).format ('YYYY-MM-DD' )); console .log (moment ().subtract (1 ,'week' ).startOf ('isoWeek' ).format ('YYYY-MM-DD' )); console .log (moment ().subtract (1 ,'week' ).endOf ('isoWeek' ).format ('YYYY-MM-DD' )); console .log (moment ().add (-1 ,'month' ).startOf ('month' ).format ('YYYY-MM-DD' )); console .log (moment ().add (-1 ,'month' ).endOf ('month' ).format ('YYYY-MM-DD' )); console .log (moment ().subtract (1 ,'month' ).startOf ('month' ).format ('YYYY-MM-DD' )); console .log (moment ().subtract (1 ,'month' ).endOf ('month' ).format ('YYYY-MM-DD' )); console .log (moment ().subtract (1 ,'week' ).startOf ('isoWeek' ).unix ()); console .log (moment ().subtract (1 ,'week' ).endOf ('isoWeek' ).unix ()); console .log (moment ().subtract (1 ,'month' ).startOf ('month' ).unix ()); console .log (moment ().subtract (1 ,'month' ).endOf ('month' ).unix ());
数据库存储 一般数据库存储都是用datetime
格式,不推荐int
格式和string
格式,以及timestamp
.timestamp
时间戳格式范围是1970-01-01 00:00:00到2037年,也就是说2038年时间戳将重置.
将UTC时间(2018-07-03T10:18:58.000Z)转换为北京时间 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 let time = '2018-07-03T10:18:58.000Z' ;function formatUTC (utc_datetime ) { var T_pos = utc_datetime.indexOf ('T' ); var Z_pos = utc_datetime.indexOf ('Z' ); var year_month_day = utc_datetime.substr (0 ,T_pos); var hour_minute_second = utc_datetime.substr (T_pos+1 ,Z_pos-T_pos-1 ); var new_datetime = year_month_day+" " +hour_minute_second; timestamp = new Date (Date .parse (new_datetime)); timestamp = timestamp.getTime (); timestamp = timestamp/1000 ; var timestamp = timestamp+8 *60 *60 ; var beijing_datetime = new Date (parseInt (timestamp) * 1000 ).toLocaleString ().replace (/年|月/g , "-" ).replace (/日/g , " " ); return beijing_datetime; } formatUTC (time);
一些项目经历 在做项目时候遇到一个问题就是: 不同的环境下(系统下)同样的mysql datetime格式时间格式取出来一个得到的是2019-07-08T03:38:27.000Z
(字符串),即UTC时间 而后台传给前端的数据就变成了7/8/2019, 7:01:12 AM
(字符串) (这种**的类型一看就知道很难转换) 所有代码都是相同的 判断原因:不同机器上,我猜测应该和本地的时间格式设置有关系 解决办法: 当然了 还是祭出时间大杀器momentjs
UTC转YY-MM-DD hh:mm:ss: moment.js
1 return moment (utc_datetime).format ('YYYY-MM-DD hh:mm:ss' )