日期时间格式转换

这两个日期格式转换 怎么转比较好?

2019-06-18T01:00:00
转换成
18/06 01:00

2019-05-30T17:02:51.133371
转换成
30/05 2019 17:02:51

阅读 2.7k
4 个回答
var d = new Date('2019-06-18T01:00:00')

s = d.getDate()+'/'+(d.getMonth()+1).toString().padStart(2,'0')+' '+d.getHours().toString().padStart(2,'0')+':'+d.getMinutes().toString().padStart(2,'0')

另一个雷同

function fmt(date){
     let  dateStr=date.toString()
     let  month = dateStr.subString(5,6)
     let  day ...
     let  hour ...
     let ...
     return day + '/' +month + hour +minute
}

第一种如上,第二种类似,手机写的不太方便,方式也不算优雅,建议多了解下date相关的函数

可以参考吾辈的 dateFormat 的实现

https://github.com/rxliuli/rx...

编译后的 js 代码

/**
 * 为 js 中的 Date 对象原型添加 format 格式化方法
 * @param date 要进行格式化的日期
 * @param fmt 日期的格式
 * @returns 格式化得到的结果
  */
function dateFormat(date, fmt) {
    const o = {
        'y+': date.getFullYear(),
        'M+': date.getMonth() + 1,
        'd+': date.getDate(),
        'h+': date.getHours(),
        'm+': date.getMinutes(),
        's+': date.getSeconds(),
        'q+': Math.floor((date.getMonth() + 3) / 3),
        'S+': date.getMilliseconds(),
    };
    for (const k in o) {
        if (!new RegExp('(' + k + ')').test(fmt)) {
            continue;
        }
        if (k === 'y+') {
            fmt = fmt.replace(RegExp.$1, ('' + o[k]).substr(4 - RegExp.$1.length));
        }
        else if (k === 'S+') {
            let lens = RegExp.$1.length;
            lens = lens === 1 ? 3 : lens;
            fmt = fmt.replace(RegExp.$1, ('00' + o[k]).substr(('' + o[k]).length - 1, lens));
        }
        else {
            const v = Reflect.get(o, k);
            fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? v : ('00' + v).substr(('' + v).length));
        }
    }
    return fmt;
}

moment,想怎么转就怎么转


let date1 = "2019-06-18T01:00:00";
let date2 = "2019-05-30T17:02:51.133371";
console.log(moment(date1).format("DD/MM HH:mm"));
console.log(moment(date2).format("DD/MM YYYY HH:mm:ss"));
控制台输出
clipboard.png
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题