时间格式:php+js 发表于 2023-04-19 | 更新于 2023-04-20
| 阅读量:
时间戳 时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数,也被称为 Unix 时间戳(Unix Timestamp)。Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。
13位 - 毫秒 🔵php
利用microtime(true),返回例如:1681910251.4386,乘1000取整数
1 2 intval(microtime(true )*1000 )
🟢js
1 2 3 4 +new Date () new Date ().getTime()Date .now()
10位 - 秒 🔵php
🟢js
parseInt()方法:抛去小数部分,不管小数部分是多少,只取整数部分
Math.floor()方法:向下取整,不管小数部分是多少,整数部分值都不变,只取整数部分
1 2 3 4 5 6 parseInt(+new Date()/1000 ) parseInt(new Date().getTime()/1000 ); Date.parse(new Date())/1000 ) parseInt(Date.now()/1000 ) Math.floor(Date.now() / 1000 )
日期格式化 🔵php
1 2 3 4 5 6 7 8 9 10 11 12 date('目标格式' ,'时间戳' ) date('Y-m-d' ) date("Y-m-d H:i:s" ) date("d" ) date("Y-m-d H:i:s" ,'1681909235' )
常用表示日期的字符 详见php.net
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 Y - 完整表示年份(四位数字:2019 ) y - 表示年份(两位数字:19 ) m - 表示月份,有前导0 (数字:04 ) n - 表示月份,无前导0 (数字:4 ) d - 表示月份中的第几天,有前导0 (01 -31 ) j - 表示月份中的第几天,无前导0 (1 -31 ) D - 表示星期几(3 字母:Wed) l - 表示星期几(完整英文:Wednesday) w - 表示星期中的第几天(数字,0 表示星期天) W - 表示一年中的第几周 z - 表示一年中的第几天(0 -366 ) H - 24 小时格式,有前导0 (08 ,18 ) G - 24 小时格式,无前导0 (9 ,17 ) h - 12 小时格式,有前导0 (06 ,11 ) g - 12 小时格式,无前导0 (6 ,12 ) i - 表示分钟,有前导0 (00 -59 ) s - 表示秒,有前导0 (00 -59 ) A - 大写的午前和午后(AM 或 PM) a - 小写的午前和午后(am 或 pm) I - 判断是否为夏令时
🟢js:需要自己封装
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 38 39 40 41 42 function dateFormat (format, timestamp = Date .now() ) { if (timestamp.toString().length === 10 ) { timestamp = timestamp * 1000 } const date = new Date (timestamp); const formats = { 'Y' : date.getFullYear(), 'y' : date.getFullYear().toString().slice(-2 ), 'm' : ('0' + (date.getMonth() + 1 )).slice(-2 ), 'n' : date.getMonth() + 1 , 'd' : ('0' + date.getDate()).slice(-2 ), 'j' : date.getDate(), 'H' : ('0' + date.getHours()).slice(-2 ), 'h' : ('0' + (date.getHours() % 12 || 12 )).slice(-2 ), 'i' : ('0' + date.getMinutes()).slice(-2 ), 's' : ('0' + date.getSeconds()).slice(-2 ), 'a' : date.getHours() >= 12 ? 'pm' : 'am' , 'A' : date.getHours() >= 12 ? 'PM' : 'AM' , }; let formattedDate = format; for (const key in formats) { if (Object .prototype.hasOwnProperty.call(formats, key)) { formattedDate = formattedDate.replace(key, formats[key]); } } return formattedDate; }
使用封装的dateFormat
1 2 3 4 const d = dateFormat('Y@m@d H:i:s' );console .log(d);