【问题标题】:How to convert Date to timestamp using MomentJS?如何使用 MomentJS 将日期转换为时间戳?
【发布时间】:2016-10-20 06:20:30
【问题描述】:

我使用 MomentJS 通过以下方式将本地日期转换为 UTC 日期:

$("#div1").text(moment("2016-10-11 18:06:03").tz("Europe/Paris").format());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.6/moment-timezone-with-data.min.js"></script>

<div id="div1"></div>

现在我需要使用 MomentJS 从输出值中获取时间戳。

【问题讨论】:

  • 你想要 Unix 时间戳中的值吗?

标签: javascript momentjs


【解决方案1】:

【讨论】:

    【解决方案2】:

    只是为了扩展前面提到的内容。这些会产生结果。

    // less precision
    moment().unix() === moment().format('X')  // uppercase X
    
    // more precision
    moment().valueOf() === moment().format('x')  // lowercase x
    

    希望能有所启发

    【讨论】:

      【解决方案3】:

      你说:

      我使用 MomentJS 通过以下方式将本地日期转换为 UTC 日期: moment("2016-10-11 18:06:03").tz("Europe/Paris").format()

      那不是那样的。这会将本地值转换为巴黎时间,并将其作为 ISO8601 格式的字符串发出。

      现在我需要使用 MomentJS 从输出值中获取时间戳。

      这是一个不同的问题,不会涉及上述输出,因为:

      1. 您无法从输出字符串中获取时间戳,而是从 moment 对象中获取时间戳。您可以解析该字符串,但这很愚蠢,因为您之前已经有一个moment 对象。

      2. 时间戳基于 UTC,因此时区转换无关紧要。如果您根本不进行转换,您将获得相同的时间戳。

      您可以使用.format('X') 或.format('x') 获取带有时间戳的字符串,具体取决于您想要的精度。但是使用.valueOf() 或.unix() 获取数字时间戳要干净得多,这又取决于精度。

      【讨论】:

      • 这对我有用:var dt= moment(timestamp).tz('Europe/Paris').format('YYYY-MM-DD HH:mm:ss');
      【解决方案4】:
      moment().format("X"); // lowercase 'x' for milliseconds
      

      var date = moment('2016-10-11 18:06:03').tz('Europe/Paris').format(),
          timestamp = moment(date).format("X");
      
      $('#div1').text(date);
      $('#timestamp').text(timestamp);
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.21/moment-timezone-with-data.min.js"></script>
      
      <div id="div1"></div>
      <div id="timestamp"></div>

      【讨论】:

        【解决方案5】:

        要从日期中获取时间,请使用momentjs的格式方法

        var date = moment('2016-10-11 18:06:03').tz('Europe/Paris').format();
         
        
        console.log(date);
        console.log(moment(date).format("X"));
        console.log(moment(date).format("x")); // for milliseconds
        console.log(moment(date).format("HH:mm"));
        console.log(moment(date).format("hh:mm A"));
        <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.21/moment-timezone-with-data.min.js"></script>

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-10-19
          • 2019-01-15
          • 1970-01-01
          • 2019-08-24
          • 2012-04-10
          相关资源
          最近更新 更多