【问题标题】:Convert UNIX timestamp to date time (javascript)将 UNIX 时间戳转换为日期时间 (javascript)
【发布时间】:2014-08-01 23:36:06
【问题描述】:

时间戳:

1395660658

代码:

//timestamp conversion
exports.getCurrentTimeFromStamp = function(timestamp) {
    var d = new Date(timestamp);
    timeStampCon = d.getDate() + '/' + (d.getMonth()) + '/' + d.getFullYear() + " " + d.getHours() + ':' + d.getMinutes();

    return timeStampCon;
};

这会根据时间格式正确转换时间戳,但日期始终是:

17/0/1970

为什么 - 干杯?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您必须乘以 1000,因为 JavaScript 从纪元(即 1970 年 1 月 1 日)算起的毫秒数,而不是秒数:

    var d = new Date(timestamp*1000);
    

    Reference

    【讨论】:

      【解决方案2】:
      function convertTimestamp(timestamp) {
          var d = new Date(timestamp * 1000), // Convert the passed timestamp to milliseconds
              yyyy = d.getFullYear(),
              mm = ('0' + (d.getMonth() + 1)).slice(-2),  // Months are zero based. Add leading 0.
              dd = ('0' + d.getDate()).slice(-2),         // Add leading 0.
              hh = d.getHours(),
              h = hh,
              min = ('0' + d.getMinutes()).slice(-2),     // Add leading 0.
              ampm = 'AM',
              time;
      
          if (hh > 12) {
              h = hh - 12;
              ampm = 'PM';
          } else if (hh === 12) {
              h = 12;
              ampm = 'PM';
          } else if (hh == 0) {
              h = 12;
          }
      
          // ie: 2014-03-24, 3:00 PM
          time = yyyy + '-' + mm + '-' + dd + ', ' + h + ':' + min + ' ' + ampm;
          return time;
      }
      

      你可以通过像convertTimestamp('1395660658')这样的调用来获取值

      【讨论】:

        【解决方案3】:

        因为您的时间以秒为单位。 Javascript 要求它从纪元开始以毫秒为单位。将它乘以 1000,它应该就是你想要的。

        //time in seconds
        var timeInSeconds = ~(new Date).getTime();
        //invalid time
        console.log(new Date(timeInSeconds));
        //valid time
        console.log(new Date(timeInSeconds*1000));
        

        【讨论】:

          【解决方案4】:
          const timeStamp = 1611214867768;
          
          const dateVal = new Date(timeStamp).toLocaleDateString('en-US');
          console.log(dateVal)
          

          【讨论】:

            猜你喜欢
            • 2018-08-03
            • 2020-10-19
            • 2015-02-09
            • 1970-01-01
            • 1970-01-01
            • 2020-12-23
            • 2016-04-24
            • 2012-07-04
            相关资源
            最近更新 更多