js转换时间格式

一、获取时间范围:

var startTime = getTimeStampToFormatedDateStr(new Date().getTime() - 48 * 60 * 60 * 1000); //时间戳

var endTime = getTimeStampToFormatedDateStr(new Date().getTime());

function add0(m) {

return m < 10 ? '0' + m : m

}

export function getTimeStampToFormatedDateStr(timeStamp) {

var time = new Date(timeStamp);

var y = time.getFullYear();

var m = time.getMonth() + 1;

var d = time.getDate();

var h = time.getHours();

var mm = time.getMinutes();

var s = time.getSeconds();

return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s); //获取年月日时分秒 2021-08-18 12:59:59 有具体的时分秒

// return y + '-' + add0(m) + '-' + add0(d) + ' ' + add0(h) + ':' + '00' + ':' + '00'; //获取年月日时 2021-08-18 12:00:00 分秒为0

// return y + '-' + add0(m) + '-' + add0(d); //获取年月日时 2021-08-18

}

二、获取7天,14天时间:

let st = getDay(0); //获取当天日期 如:2022-03-17

let st = getDay(7); //获取当天日期 如:2022-03-24 // 后7天的日期

let st1 = getDay(-7); //获取当天日期 如:2022-03-10 // 前7天的日期

function doHandleMonth(month){

var m = month;

if(month.toString().length == 1){

m = "0" + month;

}

return m;

}

export function getDay(day){

var today = new Date();

var targetday_milliseconds=today.getTime() + day*24*60*60*1000;

today.setTime(targetday_milliseconds); //注意,这行是关键代码

var tYear = today.getFullYear();

var tMonth = today.getMonth();

var tDate = today.getDate();

tMonth = doHandleMonth(tMonth + 1);

tDate = doHandleMonth(tDate);

return tYear+"-"+tMonth+"-"+tDate;

}

三、获取时间范围内的所有日期时间:

调用方式:年月日-getDatesMap('2022-01-02', '2022-01-09', 0); 或 年月日时分秒-getDatesMap("2022-01-02 09:12:11", "2022-01-09 12:55:55", 0)

返回值Map集合:["2022-01-02","2022-01-03","2022-01-04","2022-01-05","2022-01-06","2022-01-07","2022-01-08","2022-01-09"]

// startDate: 计划开始时间; endDate:计划结束时间;dayLength:每隔几天,-1-代表当天日期,0-代表第二天,1-代表日期间隔一天

export function getDatesMap(startDate, endDate, dayLength) {

startDate = getTargetDate(startDate,-1) //只保留年月日 2022-01-02 09:12:11 转成 2022-01-02

endDate = getTargetDate(endDate,-1)

var dateMap = [];

dateMap.push(startDate);

for (var i = 0 ;; i++) {

var getDate = getTargetDate(startDate, dayLength);

startDate = getDate;

if (getDate

dateMap.push(getDate)

} else {

break;

}

}

return dateMap;

}

// startDate: 开始时间;dayLength:每隔几天,-1-代表当天日期,0-代表第二天,1-代表日期间隔一天

function getTargetDate(date,dayLength) { //如果传入带时分秒的时间,则会去掉时分秒

dayLength = dayLength + 1;

var tempDate = new Date(date);

tempDate.setDate(tempDate.getDate() + dayLength);

var year = tempDate.getFullYear();

var month = tempDate.getMonth() + 1 < 10 ? "0" + (tempDate.getMonth() + 1) : tempDate.getMonth() + 1;

var day = tempDate.getDate() < 10 ? "0" + tempDate.getDate() : tempDate.getDate();

return year + "-" + month + "-" + day;

}

四、获取指定时间的时间戳。

格式一:time = "Wed Jun 10 2021 15:00:00 GMT+0800"

格式二:time = "2021/06/10 15:00:00"

格式三:time = "2021-06-10 15:00:00"

格式一、格式二:

直接使用:new Date( time ).getTime(); // 结果为:1623308400000

上面的等效方法:new Date( time ).valueOf() 和 +new Date( time )

格式三:

格式三在Safari浏览器(移动端和PC端)上会出现错误结果:NaN。格式三要在所有浏览器出现正确结果,则需要进行转换:

new Date( time.replace(/-/g, '/') ).getTime(); // 结果为:1623308400000

测试正常的浏览器:Safari浏览器(移动端和PC端)、Chrome浏览器、QQ浏览器、小米浏览器、微信等等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡壶好茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值