js获取时间相关的处理方法

1、补零公共方法

function add0 (m) {
    return m < 10 ? '0' + m : m
}

2、获取当前年月日 传入当前时间戳

/**
 * 获取当前年月日 传入当前时间戳
 * @param shijianchuo 时间戳
 * return {string} "2019-04-30"
 */
function format (shijianchuo) {
    var time = new Date (shijianchuo);
    var y = time.getFullYear ();
    var m = time.getMonth () + 1;
    var d = time.getDate ();
    return y + '-' + add0 (m) + '-' + add0 (d);
}

3、获取当前年月日时分秒 格式:"2020-01-01 12:10:10"

/**
 * 获取当前年月日时分秒
 * return {string} "2019-04-30 11:45:57"
 */
function getNowFormatDate () {
    let date = new Date ();
    let seperator1 = "-";
    let seperator2 = ":";
    let month = date.getMonth () + 1 < 10 ? "0" + (date.getMonth () + 1) : date.getMonth () + 1;
    let strDate = date.getDate () < 10 ? "0" + date.getDate () : date.getDate ();
    let currentdate = date.getFullYear () + seperator1 + month + seperator1 + strDate
        + " " + date.getHours () + seperator2 + date.getMinutes ()
        + seperator2 + date.getSeconds ();
    return currentdate;
}

4、秒转换成:天时分秒

const getDuration = (second: number) => {
	var duration;
	var days = Math.floor(second / 86400);
	var hours = Math.floor((second % 86400) / 3600);
	var minutes = Math.floor(((second % 86400) % 3600) / 60);
	var seconds = Math.floor(((second % 86400) % 3600) % 60);
	if (days > 0)
		duration =
			days + "天" + hours + "小时" + minutes + "分" + seconds + "秒";
	else if (hours > 0)
		duration = hours + "小时" + minutes + "分" + seconds + "秒";
	else if (minutes > 0) duration = minutes + "分" + seconds + "秒";
	else if (seconds > 0) duration = seconds + "秒";
	return duration;
};

5、昨天 今天 明天

//昨天
const yestoday = format (new Date ().getTime () - 24 * 60 * 60 * 1000);

//今天
const today = format (new Date ());

//明天
const tomorrow = format (new Date ().getTime () + 24 * 60 * 60 * 1000);

//最终的格式 如:2017-09-21

6、获取前后三十天数据

/**
 * 获取前后三十天数据
 * @param n 前三十天传30 后三十天传-30
 * @param value 值传 yestoday today tomorrow
 */
export const getBeforeOrAfterDate = function (n, value) {
    var date = new Date (value);
    var year, month, day;
    date.setDate (date.getDate () + n);
    year = date.getFullYear ();
    month = date.getMonth () + 1;
    day = date.getDate ();
    var s = year + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day);
    return [s, value];
};
调用方法:let time = getBeforeOrAfterDate (-30, yestoday);

7、获取今天日期

//获取今天日期
export function getCurrentDate () {
    var date = new Date ();
    var year, month, day;
    date.setDate (date.getDate ());
    year = date.getFullYear ();
    month = date.getMonth () + 1;
    day = date.getDate ();
    return year + '.' + (month < 10 ? ('0' + month) : month) + '.' + (day < 10 ? ('0' + day) : day);
}

8、获取今天星期几

//获取今天星期几
export function getCurrentWeek () {
    var day = getCurrentDate ();
    var weekDay = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
    var myDate = new Date (Date.parse (day));
    var week = weekDay[myDate.getDay ()];
    return week;
}

9、获取某个时间点+分钟之后的时间点

    /**
     * 时间点的秒级时间戳+时间(分钟)
     * @param endTime (秒级时间戳)1660564800
     * @param extendTime 时间(分钟)10
     * @returns string 2022/8/15 20:10:00
     */
const getHourDate = (endTime, extendTime) => {
      var date = new Date(Number(endTime) * 1000);
      var min = date.getMinutes();
      date.setMinutes(min+Number(extendTime)); //设置当前时间+extend分钟:把当前分钟数+extend后的值重新设置为date对象的分钟数
      return date.toLocaleString();
}


const localeDate = getHourDate(1659315600, 10); // 在1659315600这个时间戳的基础上+10分钟 获得加完之后的时间戳
const endResultTime = new Date(localeDate).getTime(); // 最终时间  //date.getTime() / date.valueOf();-毫秒级时间戳    Date.parse(date);-秒级时间戳

10、通过两个时间戳的间距计算出相隔几天几小时几分钟

// stime和etime是毫秒级时间戳
const timestamp = (stime: number, etime: number) => {
      var usedTime = etime - stime; // 两个时间戳相差的毫秒数
      var days = Math.floor(usedTime / (24 * 3600 * 1000)); // 计算相差的天数  
      var leave1 = usedTime % (24 * 3600 * 1000);  // 计算天数后剩余的毫秒数
      var hours = Math.floor(leave1 / (3600 * 1000)); // 计算出小时数  
      var leave2 = leave1 % (3600 * 1000);// 计算小时数后剩余的毫秒数
      var minutes = Math.floor(leave2 / (60 * 1000));// 计算相差分钟数
      var time = days + "d" + hours + "h" + minutes + "m";
      console.log("[time interval result]", time, [days, hours, minutes]);
      return [days, hours, minutes];
}

JavaScript 获取当前时间戳 时间戳和日期格式的转换:JavaScript 格式转换 获取当前时间戳 时间戳和日期格式的转换_EncodingAESKey的博客-CSDN博客_当前日期时间戳

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值