【问题标题】:How to format a JavaScript date to UK format?如何将 JavaScript 日期格式化为英国格式?
【发布时间】:2019-01-18 13:00:55
【问题描述】:

我目前正在学习有关 JavaScript 的方法,并且对我拥有的一个函数有疑问,该函数将生成一个实时日期和时间以供在我的应用程序中使用。

我想将我的 JavaScript 日期格式化为特定的英国格式,因为它目前是美国格式。

我的代码目前看起来像这样

<a> 
        <script type="text/javascript">
            document.write ('<p><span id="date">', new Date().toLocaleString(), '<\/span>.<\/p>')
            if (document.getElementById) onload = function () {
                 setInterval ("document.getElementById ('date').firstChild.data = new Date().toLocaleString()", 50)
                                }
        </script>
    </a>

然后上面显示如下:

1/18/2019, 12:58:13 PM

预期
英国格式为 DD/MM/YYYY,因此我希望日期为 18/1/2019。时间如我所料。

【问题讨论】:

标签: javascript date time formatting


【解决方案1】:

你需要专门add the locale 'en-GB' to toLocaleString:

<a>
  <script type="text/javascript">
    document.write('<p><span id="date">', new Date().toLocaleString('en-GB'), '<\/span>.<\/p>')
    if (document.getElementById) onload = function() {
      setInterval("document.getElementById ('date').firstChild.data = new Date().toLocaleString('en-GB')", 1000)
    }
  </script>
</a>

关于你的代码,它可以做一些重构。

1) 开发人员很少再使用document.write 来做任何事情

2) 将字符串传递给setInterval 被认为是一种反模式,因为它可以使用for XSS attacks

3) 您不需要每 50 秒更新一次代码。一秒钟就可以了。

这是一个更容易理解的重构。

// Add the HTML to the document body element
document.body.innerHTML = '<p><span id="date"></span><p>';

// Grab the date element
const date = document.querySelector('#date');

// Create a timer that calls the `changeDate` function once a second
const timer = setInterval(changeDate, 1000);

function changeDate() {

  // Set the textContent of `date` to the new date
  date.textContent = new Date().toLocaleString('en-GB');
}

【讨论】:

  • 太好了,感谢您提供重构建议和技巧。我将实施这些并从这些发现中学习!再次感谢! @安迪
【解决方案2】:

试试

let d= new Date().toLocaleString('en-GB')
let dNoZeros = d.replace(/^0?(\d?\d).0?(\d?\d)/, "$1/$2");

console.log(d);          // 18/01/2019, 14:20:58
console.log(dNoZeros);   // 18/1/2019, 14:20:58

【讨论】:

    猜你喜欢
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    相关资源
    最近更新 更多