new Date( ) 对象常用方法 / dayjs / momentjs

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'
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值