js格式化java时间戳,JS格式化时间戳(ES6)

用法 :

1.dateTime 格式化进间戳 10位 或 13位, 格式化字符YMD hms 对应 年月日 点分秒

2.dateObject 返回 一个包括YMD hms属性的对象

3.dateDays 根据 传入的 年和月 ,返回 这个月的天数

//格式化时间戳

dateTime(); //2019-01-04 11:34:27

dateTime(1580400000000);//1580400000000 2020/1/31 上午12:00:00

dateTime(1580400000000 ,'Y年M月D日/ h点m分s秒') //2019年01月04日/ 11点36分00秒

//指定月份的天数

dateDays(2020,2); // 29

//日期的年月日 时分秒

dateObject(1580400000000); // { Y:2020, M:1, D:31, h:', m:1, s:2}

const notNumber = v => typeof v !== "number";

const isTimeStamp = s => {

if (isNaN(s)) {

console.error('时间戳必须是Number')

return false

}

switch (String(s).length) {

case 10: {

return s * 1000

}

case 13: {

return s

}

default: {

console.error('只能格式化10,13位时间戳')

return false

}

}

}

const dateTime = (s, f = 'Y-M-D h:m:s') => {

const scheme = dateObject(s)

if (scheme === false) return false

return f.replace(/[YMDhms]/g, function(m) {

const val = `0${scheme[m]}`

return val.length === 2 ? val : scheme[m]

})

}

const dateObject = (s = Date.now()) => {

s = isTimeStamp(Number(s))

if (s === false) return false

const date = new Date(s)

return {

Y: date.getFullYear(),

M: date.getMonth() + 1,

D: date.getDate(),

h: date.getHours(),

m: date.getMinutes(),

s: date.getSeconds()

}

}

const dateDays = (y, m) => {

if (notNumber(y)) {

console.error(`年必须为number`)

return false

}

if (notNumber(m)) {

console.error(`月必须为number`)

return false

}

if (m % 12 === 0) {

y += 1

m = 1

}

return new Date(y, m, 0).getDate()

}

本站文章由javascript技术分享原创和收集,内容如有问题,请联系站长删除,如若转载请注明原文及出处:https://www.dsiab.com/post/875

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值