日期格式化总结

自己常用的三种格式化日期方式

1.Date原型封装

这是我用的最多也最喜欢的格式化方式,直接附上代码(借鉴的)

Date.prototype.Format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

调用方法

return new Date(value).Format("yyyy-MM-dd hh:mm")

示例:红框是后台请求返回时间字段,箭头所指即是格式化后渲染效果。
在这里插入图片描述
在这里插入图片描述
像这样直接传值给形参value就能拿到我们格式化的值。

2.Moment.js

中文网址:http://momentjs.cn/

<script src="./moment.js"></script>
console.log(moment().format('YYYY-MM-DD HH:mm:ss'));  //2020-03-17 23:48:01

这是当前的时间输出的一个例子,多语言,日期格式化看中文网介绍一目了然。

3.手动拼时间串

优点,快速,容易理解,但是兼容性没有Date原型封装的要好。上段示例代码。

var myDate = '2019-09-17T15:35:55+08:00';
function timestampToTime(timestamp) {
    var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
    var Y = date.getFullYear() + '-';
    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
    var D = date.getDate() < 10 ? '0' + date.getDate() + ' ' : date.getDate() + ' ';
    var h = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
    var m = date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':';
    var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
    return Y + M + D + h + m + s;
}
console.log(timestampToTime(myDate))  //2019-09-17 15:35:55

4.layui时间插件

-layui想必大家都有所耳闻,功能强悍,套用简单粗暴,官网地址:https://www.layui.com/
-这里还是分享下日期时间插件的用法。
-可以引用layui.js,也可只引用日期独立js----laydate.js

<input type="text" class="layui-input" id="test10" placeholder="">
<script src="laydate/laydate.js"></script> <!-- 改成你的路径 -->
<script>
  //日期时间范围
  laydate.render({
    elem: '#test10',
    type: 'datetime',
    range: true
  });
</script>

最经典的一个例子,更多用法可以参考官方文档:https://www.layui.com/demo/laydate.html
layui日期时间选择器
博客分享初衷是为了方便自己查阅,同时也希望帮到正在浏览的您!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值