从 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 时间格式中删除时间的主要内容,如果未能解决你的问题,请参考以下文章