日期格式从(20180810)到(2018年8月10日)

时间:2019-04-18 05:53:49

标签: javascript xml sapui5

有人可以帮我解决日期格式吗?

我尝试过new Date(NumberValue),但是返回了无效日期

MockServer:

"NumberValue": "2.018081E7"

格式化程序:

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

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式将日期字符串分成年,月,日,然后将其传递给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()仅返回一个数组,以便可以使用索引来达到相同的效果:

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

答案 1 :(得分:0)

您可以实现使用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>