日期格式从 (20180810) 到 (10 Aug 2018)

Date Format from (20180810) to (10 Aug 2018)

谁能帮我解决日期格式问题?

我已尝试 new Date(NumberValue) 但返回无效日期

模拟服务器:

"NumberValue": "2.018081E7"

格式化程序:

 if(ValueType === "D"){
                    return parseFloat(NumberValue);

你可以实现使用moment.js

var val = parseFloat(2.018081E7);
var date = moment(val,'YYYYMMDD').format('DD MMM YYYY');
console.log(date)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

您可以使用正则表达式将日期字符串拆分为年、月、日,然后您可以将其传递给 new Date()

const s = '20180810'

const rx = /(\d{4})(\d{2})(\d{2})/
let [_, Y, M, D] = s.match(rx)

console.log(new Date(Y, M - 1 , D)) // month is zero indexed

根据评论编辑:
如果你可以使用解构 — match() 只需 returns 一个数组,这样你就可以使用索引来达到同样的效果:

var s = '20180810'

var rx = /(\d{4})(\d{2})(\d{2})/
var m = s.match(rx)

console.log(new Date(m[1], m[2] - 1, m[3])) // month is zero indexed