从 GMT 时间格式中删除时间

Posted

技术标签:

【中文标题】从 GMT 时间格式中删除时间【英文标题】:Remove time from GMT time format 【发布时间】: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 这样的字符串函数来去除除日期之外的所有内容? 这里有很多线程处理这个问题,一个这样的线程是***.com/questions/1056728/… 【参考方案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')

【讨论】:

点击此链接了解如何写好答案***.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);

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

【讨论】:

以上是关于从 GMT 时间格式中删除时间的主要内容,如果未能解决你的问题,请参考以下文章

对于 unix 格式时间,从本地时间更改为 GMT

将 GMT+# 格式的日期时间转换为 GMT

C#时间格式之GMT时间的格式

MySQL默认时间格式是UTC还是GMT?

如何在 Go 中将时间戳格式化为 GMT?

iOS日期转换之UTC/GMT时间格式