【问题标题】:Remove time from GMT time format从 GMT 时间格式中删除时间
【发布时间】:2015-03-08 07:23:18
【问题描述】:

我收到的是 GMT 格式的日期,即 2013 年 10 月 18 日星期五 11:38:23 GMT。问题是时间弄乱了我正在使用的时间线。

我怎样才能去掉除实际日期之外的所有内容?

【问题讨论】:

  • console.log(new Date('Fri, 18 Oct 2013 11:38:23 GMT').toDateString());
  • 当我这样做时,格林威治标准时间是 Mon Jan 12 00:00:00 GMT 2015,当我将其插入 toDateString() 函数时,我最终得到 Sun Jan 11 2015,晚了一天。
  • 尝试摆弄toLocaleString(params) 并为其提供所需的格式参数。
  • 为什么不使用像 substring 这样的字符串函数来去除除日期之外的所有内容?
  • 这里有很多线程处理这个问题,一个这样的线程是stackoverflow.com/questions/1056728/…

标签: javascript date utc gmt


【解决方案1】:

如果你想继续使用 Date 而不是 String 你可以这样做:

var d=new Date(); //your date object
console.log(new Date(d.setHours(0,0,0,0)));

-PS,你不需要一个新的 Date 对象,它只是一个例子,以防你想把它记录到控制台。

http://www.w3schools.com/jsref/jsref_sethours.asp

【讨论】:

  • 如果您使用 UTC 日期,则应使用 setUTCHours,因为 setHours 根据当地时间设置指定日期的小时数。
【解决方案2】:

像这样:

var dateString = 'Mon Jan 12 00:00:00 GMT 2015';
dateString = new Date(dateString).toUTCString();
dateString = dateString.split(' ').slice(0, 4).join(' ');
console.log(dateString);

【讨论】:

  • 我不得不将切片更改为 0,3,但效果很好!!谢谢
【解决方案3】:

我正在使用这个解决方法:

// d being your current date with wrong times
new Date(d.getFullYear(), d.getMonth(), d.getDate())

【讨论】:

  • 救命稻草,我希望 javascript 有一个像 Java 这样的 LocalDate,以避免这种变通方法
【解决方案4】:

您可以使用 Moment.js,这是一个库,它提供了许多帮助函数来验证、操作、显示和格式化 JavaScript 中的日期和时间。

使用 Moment.js 库:

var dateString = new Date('Mon Jan 12 00:00:00 GMT 2015');
moment(dateString).format('YYYY-MM-DD HH:mm');

或简化:

moment('Mon Jan 12 00:00:00 GMT 2015').format('YYYY-MM-DD HH:mm')

【讨论】:

  • 点击此链接了解如何写好答案stackoverflow.com/help/how-to-answer
  • 你的代码可能没有问题,我对javascript了解不多。我通过堆栈溢出得到了你的问题供审查。我必须找出任何问题。而且我发现你的答案只包含代码,没有任何解释。您应该告诉 OP(问题的提问者)“是什么导致了问题?”,实际的解决方案,并且应该解释“您的解决方案是如何工作的?”。
【解决方案5】:

嗯,

这是我的解决方案

let dateString = 'Mon May 25 01:07:00 GMT 2020';
let dateObj = new Date(dateString);

console.log(dateObj.toDateString());
// outputs Mon May 25 2020

在 MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toDateString 上查看其文档

【讨论】:

    【解决方案6】:

    substring剪掉它:

     var str = 'Fri, 18 Oct 2013 11:38:23 GMT';
     str = str.substring(0,tomorrow.toLocaleString().indexOf(':')-3);
    

    【讨论】:

      【解决方案7】:

      在这种情况下,您可以在不使用 Date 对象的情况下操作您的字符串。

      var dateTime = 'Fri, 18 Oct 2013 11:38:23 GMT',
          date = dateTime.split(' ', 4).join(' ');
          
      document.body.appendChild(document.createTextNode(date));

      【讨论】:

        【解决方案8】:

        您可以先将日期转换为字符串:

        String dateString = String.valueOf(date);

        然后将子字符串应用到字符串:

        dateString.substring(4, 11) + dateString.substring(30);

        您需要小心,因为将日期转换为字符串实际上也会改变日期格式。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-10
          • 1970-01-01
          • 2017-08-10
          • 1970-01-01
          • 2014-01-12
          • 1970-01-01
          • 1970-01-01
          • 2018-04-13
          相关资源
          最近更新 更多