在DOM中转换日期格式的最佳方法是什么

时间:2019-07-19 02:48:49

标签: javascript

使用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>

2 个答案:

答案 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>