dayjs 比 momentjs 更轻 ,都在用dayjs了 包括antd
----------------------
const dateFormat = 'YYYY-MM-DD';
dayjs(values.startTime, dateFormat) 返回的是一个 new date()对象
dayjs(text)?.format(dateFormat) 返回的是一个字符串
--------------------------------
let date = ( new Date() != new Date().toString() )
结果 : Mon Oct 03 2022 21:28:57 GMT+0800 (中国标准时间)
1、在node里,new Date 结果与 new Date().toString() 不同。但在网页上相同。
2、返回的结果不同,new Date()返回的是对象,可以 new Date().getTime() 可以拿到时间戳
(虽然输出的结果一样,但没有返回的结果不一样。)
-------------------------------------------------------------------------
返回 Date 对象的原始值:
var d=new Date();
var n=d.valueOf();
1664795096033
----------------------------------------------------------------------------
返回 1970/01/01 至 2012/3/21 之间的毫秒数:
var d = Date.parse("March 21, 2012");
1332259200000
---------------------------------------------
根据本地时间把 Date 对象的日期部分转换为字符串:
var d=new Date();
var n=d.toLocaleDateString();
2022/10/4
-----------------------------------------------------------------------------------------------------------------------------
日期 --> 时间戳
// 有三种方式获取
var date = new Date(); // 当前时间
var time1 = date.getTime();
var time2 = date.valueOf();
var time3 = Date.parse(date);
console.log(time1);// 1571881488864 会精确到毫秒
console.log(time2);// 1571881488864 精确到毫秒
console.log(time3);// 1571881488000 只能精确到秒,毫秒用000替代
console.log(getExactTime(time1)); // 2019-10-24 9:35:53
console.log(getExactTime(time2)); // 2019-10-24 9:35:53
console.log(getExactTime(time3)); // 2019-10-24 9:35:53
时间戳 转 日期 的方法:
var date = new Date( 时间戳 )
-------------------------------------------------
时间戳 转 日期 的自定义方法:
// 时间戳为10位需*1000,时间戳为13位直接获取 ,获取当前时间 new Date().getTime() 获取13位时间戳
function getExactTime(time) {
var date = new Date(time);
// var date = new Date(time* 1000);
var year = date.getFullYear() + '-';
var month = (date.getMonth()+1 < 10 ? '0' + (date.getMonth()+1) : date.getMonth()+1) + '-';
var dates = date.getDate() + ' ';
var hour = date.getHours() + ':';
var min = date.getMinutes() + ':';
var second = date.getSeconds();
return year + month + dates + hour + min + second ;
}
getExactTime(1571880953210);
console.log(getExactTime(1571880953210)); // 2019-10-24 9:35:53
-----------------------------------
倒计时字符串显示
/**
* 计算剩余的时间(精确到毫秒)
* @param completeTime 截止时间
* @return 00000000 剩余时间
*/
export const completeInterval = (completeTime: string | number | Date, abs = false) => {
const faultDate = new Date().getTime();
const stime = Date.parse(String(new Date(faultDate)));
const etime = Date.parse(String(new Date(completeTime)));
let usedTime = etime - stime; // 两个时间戳相差的毫秒数
if (abs) usedTime = Math.abs(usedTime)
const days = Math.floor(usedTime / (24 * 3600 * 1000)) > 0 ? Math.floor(usedTime / (24 * 3600 * 1000)) : 0;
// 计算出小时数
const leave1 = usedTime % (24 * 3600 * 1000); // 计算天数后剩余的毫秒数
const hours = Math.floor(leave1 / (3600 * 1000)) > 0 ? Math.floor(leave1 / (3600 * 1000)) : 0;
// 计算相差分钟数
const leave2 = leave1 % (3600 * 1000); // 计算小时数后剩余的毫秒数
const minutes = Math.floor(leave2 / (60 * 1000)) > 0 ? Math.floor(leave2 / (60 * 1000)) : 0;
const leave3 = leave1 % (60 * 1000); // 计算分数数后剩余的毫秒数
const second = Math.floor(leave3 / (1000)) > 0 ? Math.floor(leave3 / (1000)) : 0;
const time = `${days.toString().padStart(2, '0')}${hours.toString().padStart(2, '0')}${minutes.toString().padStart(2, '0')}${second.toString().padStart(2, '0')}`;
return time;
};
/**
* @param fmt 时间参数 用于接收completeInterval interval格式化后的值
* @returns xx天xx时xx分xx秒
*/
export const fmtView = (fmt) => {
const num = Number(fmt)
const count = num.toString().length % 2 === 1 ? 1 : 2
const fmtText = num.toString().split('');
switch (true) {
case num > 999999:
fmtText.splice(count, 0, '天');
fmtText.splice(count + 3, 0, '时');
fmtText.splice(count + 6, 0, '分');
fmtText.splice(count + 9, 0, '秒');
return fmtText.join('');
case num > 9999:
fmtText.splice(count, 0, '时');
fmtText.splice(count + 3, 0, '分');
fmtText.splice(count + 6, 0, '秒');
return fmtText.join('');
case num > 99:
fmtText.splice(count, 0, '分');
fmtText.splice(count + 3, 0, '秒');
return fmtText.join('');
case num > 0:
fmtText.splice(count, 0, '秒');
return fmtText.join('');
default: return '0'
}
}