javascript - 使用 Moment.js 从 UTC 格式化时间

标签 javascript codepen

如何使用 moment.js 将 utc 时间转换为这种格式

“YYYY 做 MM hh:mm:ss”

我正在尝试遵循并使用以下教程“解析日期”部分中的此方法:https://flaviocopes.com/momentjs/

moment(dt).format("YYYY Do MM hh:mm:ss");

但这只会让日期消失。

代码笔:https://codepen.io/centem/pen/ExYEoLj

var options = {
  valueNames: ['date', 'number']
};
var ResultDiv = new List('ResultDiv', options);
ul {
  list-style-type: none;
  padding-left: 0;
  margin-left: 0;
}

span {
  margin-right: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/list.js/1.5.0/list.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>


<div id="ResultDiv">
  <input class="search" placeholder="Search" />
  <button class="sort" data-sort="date">
    Sort by Date
  </button>
  <button class="sort" data-sort="number">
    Sort by Number
  </button>
  <button>Last 7 Days</button>
  <button>Last 30 Days</button>

  <ul class="list" id="ul">
    <li>
      <span class="2019-01">
          <script>
            let dt = new Date("2019-04-15T15:10:45Z");
            document.write(dt);
            //2019-04-15T15:10:45Z;
            //moment(dt).format("YYYY Do MM hh:mm:ss");
          </script>
            </span>
      <span class="number">76</span>
    </li>
    <li>
      <span class="date">2019-02-12T11:21:10Z</span>
      <span class="number">23</span>
    </li>
    <li>
      <span class="date">2019-01-12T10:20:16Z</span>
      <span class="number">14</span>
    </li>
    <li>
      <span class="date">2019-01-09T09:20:16Z</span>
      <span class="number">7</span>
    </li>
    <li>
      <span class="date">2019-07-11T11:01:05Z</span>
      <span class="number">101</span>
    </li>
    <li>
      <span class="date">2019-08-29T11:01:05Z</span>
      <span class="number">121</span>
    </li>
    <li>
      <span class="date">2019-09-11T11:01:05Z</span>
      <span class="number">130</span>
    </li>
  </ul>

</div>

解决方法:

 let current_datetime = new Date("2019-04-15T15:10:45Z")
        let formatted_date = current_datetime.getFullYear() + "-" + (current_datetime.getMonth() + 1) + "-" + current_datetime.getDate() + " " + current_datetime.getHours() + ":" + current_datetime.getMinutes() + ":" + current_datetime.getSeconds() 
        console.log(formatted_date)

        let dt = new Date("2019-04-15T15:10:45Z");
        document.write(formatted_date);

最佳答案

您的问题是 momentjs <script> 时未加载标记被调用。 CodePen 在 DOM 加载后加载 JavaScript。您需要将代码移动到 CodePen 的 JavaScript 部分。我建议将日期添加到您的节点并查询这些节点,通过 innerText 更新节点的内容。我已经更新了你的笔:https://codepen.io/kkirby/pen/zYOWJxX

关于javascript - 使用 Moment.js 从 UTC 格式化时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57873377/

相关文章:

HTML 和 CSS 基础知识.. 谷歌字体不起作用?

java - Ajax 使用 Javascript 调用同一 JSP

javascript - 记录Javascript和 Electron (Atom-Shell)

javascript - 从 Javascript 中的行 html 中获取值

html - 我如何将文件输入链接到对象嵌入的源

javascript - 媒体捕获和屏幕键盘之间的 Javascript 冲突

asp.net - 如何通过javascript调用c#服务器端方法

javascript - 有人有将 Visualize.js 嵌入 APEX 应用程序以集成 JasperServer Reports 的经验吗?

html - 使用 anchor 链接平滑滚动

javascript - Codepen 在预期很少的项目时返回空数组