【问题标题】:How to convert Date with TimeZone format to normal Date?如何将 TimeZone 格式的日期转换为普通日期?
【发布时间】:2017-08-07 10:19:20
【问题描述】:

现有日期: 2017-08-03T18:30:00.000Z

要求日期: DD-MMM-YY

我试过这个:

var d = 2017-08-03T18:30:00.000Z; 
var newd = moment.parseZone(d).format("DD-MMM-YY");

但是 newd 返回一个以前的日期。

基本上,我将 datepicker 中的日期插入 MongoDB。 我以这种格式 08/07/2017 将日期插入到日期变量模式类型为 Date 的数据库中。

当我检索日期时,我会从数据库中获取上述格式的日期。
(2017-08-03T18:30:00.000Z)

看来我没有详细说明我的问题。 我正在绑定来自 DataTable 的变量

 var table = $('#datatable').DataTable({
    processing: true,
    serverSide: false,
    "aoColumnDefs": [ { "sClass": "hide_me", "aTargets": [ 0 ], visible: false } ], // first column in visible columns array gets class "hide_me"
    ajax: {
        url: "/getData",
        dataSrc: "list"
    },
    columns: [
        { data : "_id"},
        { data : "user.name" },
        { data : "date", render: function(d){
            return moment.parseZone(d).format("DD-MMM-YY");
        } },

   ],
 });

【问题讨论】:

  • 使用 d = "2017-08-03T18:30:00.000Z";缺少引号
  • @EmdadulSawon 不,这不起作用。
  • 适合我的报价:jsfiddle.net/cuzq99yk
  • 您需要发布(最少)代码来重现该问题。如果字符串被引用,则代码按预期工作(即它生成一个字符串“03-Aug-17”)。

标签: javascript date datetime momentjs


【解决方案1】:

您只是错过了报价。我已经尝试过,它有效

var d = "2017-08-03T18:30:00.000Z";
var newd = moment.parseZone(d).format("DD-MMM-YY");
console.log(newd);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

也可以在codepen

【讨论】:

    【解决方案2】:

    嗨 Anirudh,你使用的时刻很好,现在试试时刻时区 https://momentjs.com/timezone/docs/

    按时区可以更改时区

    将 GST 转换为您当地的时区,然后形成日期

    获取本地时区 By: var ltz = moment.tz.guess();

    现在转换:moment.tz(date, ltz).format('DD-MMM-YY');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-04
      • 2014-01-17
      • 2015-11-11
      • 2011-10-10
      • 2014-02-25
      • 1970-01-01
      • 2018-02-12
      相关资源
      最近更新 更多