如何将 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 日期?