【问题标题】:Get millis when using new Date().toLocaleTimeString() [duplicate]使用 new Date().toLocaleTimeString() 时获取毫秒 [重复]
【发布时间】:2018-10-11 03:54:04
【问题描述】:

我有这个代码:

v.d = new Date().toLocaleTimeString();

它会产生这样的结果:

20:11:40

所以这是一天中的时间到秒,没有毫秒。 我的问题是:是否有内置调用可以仅显示毫秒时间?

我正在寻找这样的东西(到毫秒):

20:11:40.124

【问题讨论】:

  • toLocaleTimeString 依赖于实现,您不能依赖于获取任何特定格式。您可能会得到“8:11:40 pm”或许多其他值。

标签: javascript node.js date


【解决方案1】:

这可行,但如果可能的话,我正在寻找更紧凑的东西:

 const d = new Date();
 v.d = d.toLocaleTimeString() + `.${d.getMilliseconds()}`;

这会产生:

20:17:30.744

请注意,要使其正常工作,您需要添加以下部分: Formatting milliseconds to always 3 digits for d.getMilliseconds() call

【讨论】:

  • 我认为这将是最简单的方法。为方便起见,只需将其放入函数中并传递日期即可。
  • 是的,正在寻找尽可能高性能的东西,但我想现在必须这样做
  • 您不能依赖 d.toLocaleTimeString 返回特定格式。手动格式化字符串要好得多。
【解决方案2】:

还有 ISOString()。但是退一步说,除了那个例外,在 js 中格式化日期没有标准。因此,您可以使用 toISOString 或使用单独的日期函数构建自己的字符串。

【讨论】:

  • 你的意思是Date.prototype.toISOString() 对吗?
  • 是的。用我的手机输入的。
【解决方案3】:

我确实发现您的原始解决方案存在一个问题。当我执行它时,它会产生hh:mm:ss PM.mil。我假设您想要hh:mm:ss.mil 这是作为函数编写的解决方案,因此您可以传入日期对象并获得正确的格式:

const d = new Date()

const getTimeWithMilliseconds = date => {
  const t = d.toLocaleTimeString();
  return `${t.substring(0,8)}.${date.getMilliseconds() + t.substring(8,11)}`;
}

console.log(getTimeWithMilliseconds(d));

或者如果您想要 24 小时格式:

const d = new Date()

const getTimeWithMilliseconds = date => {
  return `${date.toLocaleTimeString('it-US')}.${date.getMilliseconds()}`;
}

console.log(getTimeWithMilliseconds(d));

【讨论】:

    【解决方案4】:

    您不能依赖 toLocaleTimeString 返回特定格式,因为它依赖于实现。自己构建格式更可靠,例如:

    function getFormattedTime(date) {
      var d = date || new Date();
      var z = n => ('0'+n).slice(-2);
      var zz = n => ('00'+n).slice(-3);
      return `${z(d.getHours())}:${z(d.getMinutes())}:${z(d.getSeconds())}.${zz(d.getMilliseconds())}`;
    }
    
    console.log(getFormattedTime());
    console.log(getFormattedTime(new Date(2018,1,1)));
    console.log(getFormattedTime(new Date(2018,4,30,23,51,12,89)));

    另见Where can I find documentation on formatting a date in JavaScript?

    【讨论】:

      猜你喜欢
      • 2020-02-03
      • 2018-03-27
      • 2020-12-21
      • 2011-05-15
      • 2021-04-09
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      相关资源
      最近更新 更多