【问题标题】:get exact time in javascript在javascript中获取确切时间
【发布时间】:2016-05-21 08:30:19
【问题描述】:

如何在 javascript 中获取准确的当前时间?例如,当您执行您得到的代码时(2016-02-11 03:11:22:33)。

注意:有很多教程,但没有一个能提供当前时间的毫秒

【问题讨论】:

  • new Date()
  • 或者您是否试图将确切的格式作为字符串?
  • 也许您可以将毫秒附加到您首选日期格式的末尾? new Date().getMilliseconds() 会给你女士。
  • JavaScript 是一种客户端语言,因此日期将始终基于本地时间,除非您专门使用 UTC 方法。
  • 这很简单 -> jsfiddle.net/3dnmLfj4 (记得归零等)

标签: javascript jquery time date-format time-format


【解决方案1】:

这个function 应该这样做:

function getTime(input) {
    var date = input ? new Date(input) : new Date();
    return {
        hours : date.getHours(),
        minutes : date.getMinutes(),
        seconds : date.getSeconds(),
        milliseconds : date.getMilliseconds()
    }
}

如果我现在(20:52:49 200 毫秒)运行 getTime(),我会得到一个具有以下属性的对象:

{
    hours: 20,
    minutes: 52,
    seconds: 49,
    milliseconds: 200
}

如果你希望你的输出是一个字符串而不是一个对象,你也可以使用这个函数:

var getTimeString = function(input, separator) {
    var pad = function(input) {return input < 10 ? "0" + input : input;};
    var date = input ? new Date(input) : new Date();
    return [
        pad(date.getHours()),
        pad(date.getMinutes()),
        pad(date.getSeconds()),
        date.getMilliseconds()
    ].join(typeof separator !== 'undefined' ?  separator : ':' );
}

如果我现在(20:52:49 200 毫秒)运行 getTimeString(),我会得到这个字符串:

20:52:49:200

另见this Fiddle

【讨论】:

    【解决方案2】:

    扩展 John 的想法,您可以在 getTime 函数中添加配置选项,例如时间是否为 24 小时以及是否为 UTC。

    var now = new Date();
    document.body.innerHTML  = 'Local: ' + format(getTime(now, true, false)) + '\n';
    document.body.innerHTML += 'UTC:   ' + format(getTime(now, true, true));
    
    /**
     *  Returns an object with time information for a given Date object.<p>
     *  @param date {Date} A date object used to retrieve information.
     *  @return Returns an object containg hours, minutes, seconds,
     *          and milliseconds for the supplied date.
     */
    function getTime(date, is24Hour, isUTC) {
      var hour = isUTC ? date.getUTCHours() : date.getHours();
      var meridiem = hour < 12 ? 'AM' : 'PM';
      hour = is24Hour ? hour % 12 : hour;
      hour = hour === 0 ? 12 : hour;
      var data = {
        hours        : hour,
        minutes      : isUTC ? date.getUTCMinutes()      : date.getMinutes(),
        seconds      : isUTC ? date.getUTCSeconds()      : date.getSeconds(),
        milliseconds : isUTC ? date.getUTCMilliseconds() : date.getMilliseconds(),
        is24Hour     : is24Hour,
        isUTC        : isUTC
      };
      if (is24Hour) {
        data.meridiem = meridiem;
      }
      return data;
    }
    
    function format(time) {
      function pad(val, str) { return ('' + str + val).substr(-str.length); }
      return pad(time.hours, '00')         + ':' +
             pad(time.minutes, '00')       + ':' +
             pad(time.seconds, '00')       + '.' +
             pad(time.milliseconds, '000') + ' ' +
             time.meridiem || '';
    }
    body { white-space: pre; font-family: monospace; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 2015-07-13
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      • 1970-01-01
      相关资源
      最近更新 更多