【问题标题】:Javascript change date into format of (dd/mm/yyyy) [duplicate]Javascript将日期更改为(dd / mm / yyyy)的格式[重复]
【发布时间】:2012-11-07 17:35:24
【问题描述】:

如何转换以下日期格式(2012 年 11 月 19 日星期一 13:29:40)

进入:

dd/mm/yyyy

<html>
    <head>
    <script type="text/javascript">
      function test(){
         var d = Date()
         alert(d)
      }
    </script>
    </head>

<body>
    <input onclick="test()" type="button" value="test" name="test">
</body>
</html>

【问题讨论】:

  • 你试过什么?这段代码看起来并没有尝试对日期进行任何字符串化。

标签: javascript


【解决方案1】:

一些 JavaScript 引擎可以直接解析该格式,这使得任务非常简单:

function convertDate(inputFormat) {
  function pad(s) { return (s < 10) ? '0' + s : s; }
  var d = new Date(inputFormat)
  return [pad(d.getDate()), pad(d.getMonth()+1), d.getFullYear()].join('/')
}

console.log(convertDate('Mon Nov 19 13:29:40 2012')) // => "19/11/2012"

【讨论】:

  • 在这两个中,这最终是更短更好的答案。
  • 例子在哪里?
  • 使用 const const pad = (s) => (s
  • 这确实有效,尽管我用下面的示例对其进行了修改。
【解决方案2】:

这将确保您获得两位数的日期和月份。

function formattedDate(d = new Date) {
  let month = String(d.getMonth() + 1);
  let day = String(d.getDate());
  const year = String(d.getFullYear());

  if (month.length < 2) month = '0' + month;
  if (day.length < 2) day = '0' + day;

  return `${day}/${month}/${year}`;
}

或者更简洁:

function formattedDate(d = new Date) {
  return [d.getDate(), d.getMonth()+1, d.getFullYear()]
      .map(n => n < 10 ? `0${n}` : `${n}`).join('/');
}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多