使用javascript在DOM中将此日期格式(Y-m-d)更改为该日期格式(d-m-Y)的最佳方法是什么。
这就是我现在拥有的:
<html>
<body>
<div>2019-07-01</div>
<input type="text" value="2019-05-01">
</body>
</html>
这就是我希望的样子:
<html>
<body>
<div>01-07-2019</div>
<input type="text" value="01-05-2019">
</body>
</html>
答案 0 :(得分:1)
将您的字符串传递到Date对象中,并获取日,月和年。最后按照您的期望重新格式化。
const domObj = document.querySelector('input[type=text]') // An ID might be better. Here `input[type=text]` just for example.
const date = new Date(domObj.value)
let day = date.getDate()
let month = date.getMonth() + 1
let year = date.getFullYear()
// add a leading 0 if the number is less than 10. like 9 to 09
day < 10 && (day = `0${day}`)
month < 10 && (month = `0${month}`)
const newFormat = `${day}-${month}-${year}`
domObj.value = newFormat
console.log(newFormat)
<html>
<body>
<div>2019-07-01</div>
<input type="text" value="2019-05-01">
</body>
</html>
答案 1 :(得分:0)
您可以从Date对象获取月份,月份和月份并进行重新排序,或者可以使用moment,或者可以使用type="date"的输入。这取决于您是否需要外部库,还是选择input [type =“ text”]与input [type =“ date”]。
document.getElementsByName('inputDate')[0].addEventListener('input', function (evt) {
const inputDate = new Date(evt.target.value)
const date = inputDate.getDate()
const month = inputDate.getMonth() + 1 // Since getMonth() returns month from 0-11 not 1-12.
const year = inputDate.getFullYear()
document.getElementById('converted').innerHTML = `${date}-${month}-${year}`
})
<html>
<body>
<div id="converted">2019-07-01</div>
<input name="inputDate" type="text" value="2019-05-01">
</body>
</html>