如何将 solr 日期转换为 javascript 日期?

Posted

技术标签:

【中文标题】如何将 solr 日期转换为 javascript 日期?【英文标题】:How to Convert solr date to javascript date? 【发布时间】:2017-04-15 16:44:40 【问题描述】:

我在“2016-11-17T09:22:24Z”中有时间,我需要将其转换为 “2016-11-1709:22:24”。只需要从 solr Date 中删除 T 和 Z,我需要在该日期添加 330 分钟并显示它

【问题讨论】:

按照问题的标题,他实际上需要一个javascript日期,对吧? 【参考方案1】:

首先我们可以从字符串构造一个javascript日期对象,然后你可以将它转换成正确的格式:

var dt = new Date('2016-11-17T09:22:24Z')
var formattedDate = dt.toISOString().substring(0, 19).replace('T', '')

console.log(formattedDate) 应该记录2016-11-1709:22:24

或者在一行中:

new Date('2016-11-17T09:22:24Z').toISOString().substring(0, 19).replace('T', '')

将渲染:2016-11-1709:22:24

这里有更多好的讨论:Convert javascript to date object to mysql date format (YYYY-MM-DD)

【讨论】:

JavaScript 实际上并没有特定的日期格式。您当前的 Solr 日期格式足以让 Javascript 理解。例如:new Date('2016-11-17T09:22:24Z') 将给出一个 JavaScript 日期。 但是当我将格式化日期转换为日期时,它显示的日期无效 新日期(格式化日期);这显示了无效日期的错误 formattedDate 已经是一个日期对象。您不必转换它。我正在更新答案,以向您展示一个单一的解决方案,以防万一它对您有所帮助。 我还需要添加 330 分钟,如何添加?【参考方案2】:
var userdate = new Date("2009-1-1T8:00:00Z");
var timezone = userdate.getTimezoneOffset();
var serverdate = new Date(userdate.setMinutes(userdate.getMinutes()+parseInt(timezone)));

这将为您提供正确的 UTC 日期和时间。 这是因为 getTimezoneOffset() 将以分钟为单位为您提供时区差异。我建议您不要使用 toISOString() 因为输出将在字符串中因此将来您将无法操纵日期

【讨论】:

以上是关于如何将 solr 日期转换为 javascript 日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Javascript 日期时间转换为 C# 日期时间?

如何将 Google Sheet 日期数值转换为 JavaScript 日期?

如何将 JavaScript 日期转换为 MySQL 日期时间格式? [复制]

如何通过javascript将日期转换为毫秒? [复制]

如何将 Javascript 日期转换为 iOS 日期格式

如何将JavaScript日期转换为UTC?