【问题标题】:How to get current date upto milliseconds using JavaScript?如何使用 JavaScript 将当前日期精确到毫秒?
【发布时间】:2020-07-25 23:17:32
【问题描述】:

JavaScript 是否提供任何方法将当前日期缩短到毫秒?我正在使用new Date() 方法,但这会返回直到秒的时间,如下所示:

console.log(new Date())
LOGS - Thu Sep 07 2017 14:47:37 GMT+0530 (India Standard Time)

我需要的是:Thu Sep 07 2017 15:10:46:900100 GMT+0530 (India Standard Time)

但是我需要最多毫秒的时间,也就是最多 6 位数。 JavaScript 是否为我们提供了任何提取毫秒的方法?我知道我们可以提取小时、分钟和毫秒等单个值并再次附加它们,但这不是我的要求,因为 我需要默认 JavaScript DATE 格式的日期,如上所述。所以寻找任何与此相关的解决方案。

【问题讨论】:

  • 这个w3schools.com/Jsref/jsref_getmilliseconds.asp 可能会有所帮助。
  • 在谷歌的第一次点击中几乎在 5 秒内我得到了答案。
  • @TechnoCrat 我只是不需要毫秒,我需要问题中提到的完整时钟。
  • 如果需要指定格式,需要使用任何插件或者自己自定义日期
  • @Jonas Schafft 已经给出了答案,可能对您有所帮助。

标签: javascript jquery html angular date


【解决方案1】:

编辑

您可以使用 momentJS 执行此操作,您可以从以下链接下载 JS:https://momentjs.com/

var moment = require('moment');    
var momentDate = moment(date).format("ddd MMM DD YYYY HH:MM:ss:SSSSSSS Z");

Ti.API.info('momentDate ' + momentDate);

希望这可以帮助您获得更好的方法,还请查看以下链接以获取更多信息。 https://momentjs.com/docs/

祝你好运,干杯

阿什·塞巴斯蒂安

【讨论】:

  • 我知道我们可以提取小时、分钟和毫秒等单个值并再次附加它们,但这不是我的要求,因为我需要上面提到的默认 JS 格式的日期。
  • @Manu:我已经更新了答案,请试一试,让我知道这是否有效并解决了您的问题
  • 不使用moment就不能用纯js完成吗?
  • 对不起老大,我猜不是因为普通的js Date对象没有自定义格式化日期对象的格式方法。
  • 使用momentjs格式方法的问题是它以字符串形式返回日期,我需要它作为日期类型。
【解决方案2】:

对于微秒,有 DOMHighResTimeStamp API (https://developer.mozilla.org/en-US/docs/Web/API/DOMHighResTimeStamp) - 试试 performance.now()

【讨论】:

    【解决方案3】:

    您可以尝试以下代码进行查询:

        <!DOCTYPE html>
    <html>
    <head>
        <title>Test</title>
    </head>
    <body>
    <button onclick="myFunction()">click</button>
    <p id="d"></p>
    </body>
    <script type="text/javascript">
        function myFunction() {
        var today = new Date();
        var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
        var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds() + ":" + today.getMilliseconds();
        var dateTime = date+' '+time;
        alert(dateTime);
    }
    </script>
    </html>
    

    【讨论】:

    • 我知道我们可以提取小时、分钟和毫秒等单个值并再次附加它们,但这不是我的要求,因为我需要上面提到的默认 JS 格式的日期。
    【解决方案4】:

    给你:

    var d = new Date();
    var n = d.getMilliseconds();
    

    如果你想要完整的日期:

    var d = new Date();
    var h = addZero(d.getHours(), 2);
    var m = addZero(d.getMinutes(), 2);
    var s = addZero(d.getSeconds(), 2);
    var ms = addZero(d.getMilliseconds(), 3);
    var fullDate = h + ":" + m + ":" + s + ":" + ms;
    
    function addZero(x, n) {
        while (x.toString().length < n) {
            x = "0" + x;
        }
        return x;
    }
    

    【讨论】:

    • 我只是不需要毫秒,我需要问题中提到的完整时钟。
    • 那么你可以把它们加在一起吗?你可以从日期开始得到一切。
    • addZero 函数在哪里??
    • @Pugazh 就在那儿!懒惰复制意大利面 ;-)
    • 我知道我们可以提取小时、分钟和毫秒等单个值并再次附加它们,但这不是我的要求,因为我需要上面提到的默认 JS 格式的日期。
    【解决方案5】:

    试试下面的例子。完整的参考检查https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#Conversion_getter

    function addZero(v) {
      return (v < 10 ? v = '0' + v : v);
    }
    
    function getFullDate(dt) {
      var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
      var mons = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    
      var w = days[dt.getDay()];
      var M = mons[dt.getMonth()];
      var d = addZero(dt.getDate());
      var y = dt.getFullYear();
      var h = addZero(dt.getHours());
      var m = addZero(dt.getMinutes());
      var s = addZero(dt.getSeconds());
      var z = dt.getMilliseconds();
      if (z < 10)
        z = '00' + z;
      else if (z < 100)
        z = '0' + z;
      var fulldate = w + " " + M + " " + d + " " + y + " " + h + ":" + m + ":" + s + ":" + z;
      return fulldate;
    }
    
    console.log(getFullDate(new Date()));

    【讨论】:

      【解决方案6】:

      var now = new Date();  //Fri Jul 24 2020 11:41:49 GMT+0530 (India Standard Time)
         
      
      var nowIso = now.toISOString(); //"2020-07-24T06:11:49.911Z"
         
      
      var nowInMilliseconds = Date.parse(nowIso); //1595571109911

      【讨论】:

      • 请将代码格式化为代码......并添加一些描述以帮助其他人了解您的解决方案
      • 是的,我执行了你的建议。谢谢。此外,cmets 是每行输出的示例。
      猜你喜欢
      • 2015-07-30
      • 2014-10-12
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 2012-12-14
      • 2012-08-06
      • 2017-06-23
      • 1970-01-01
      相关资源
      最近更新 更多