【问题标题】:How to Convert Hard Coded date into standard GMT format如何将硬编码日期转换为标准 GMT 格式
【发布时间】:2014-02-20 13:25:03
【问题描述】:

我需要将硬编码日期转换为标准 GMT 格式。我该怎么做? 我的日期格式如下: var myDate = 'dd|mm|yyyy'; 日期中没有时间或日期描述。只有 'dd|mm|yyyy' 字符串。 有什么办法可以将其转换为 GMT?

提前致谢。

【问题讨论】:

标签: javascript jquery


【解决方案1】:
a = '22/02/2014'.split('/')
d = new Date(a[2],parseInt(a[1], 10) - 1,a[0])
//Sat Feb 22 2014 00:00:00 GMT+0530 (India Standard Time)

现在您在 d 中有一个 javascript 日期对象

utc = d.getUTCDate() + "/" + (d.getUTCMonth() + 1 ) + "/" + d.getUTCFullYear();
//"21/2/2014" for an accurate conversion to UTC time of day is a must.

如果您在印度,Javascript Date 对象将具有 timeZoneOffset 330。因此,除非您的系统时间为 GMT,否则无法使用时区 GMT 保留 javascript Date 对象。

因此,如果您想要一个 Date 对象进行计算,您可以使用 localTimezone 创建一个并简单地假设它是 GMT

pseudoGMT = new Date( Date.parse(d) + d.getTimezoneOffset() * 60 * 1000);
//Fri Feb 21 2014 18:30:00 GMT+0530 (India Standard Time)

如果您能解释您的高水平要求,我们或许可以提供一些替代解决方案。

【讨论】:

  • 感谢您的帮助。但是我可以获得一个标准的日期对象,我可以在其上应用 javascript 中可用的各种日期方法吗?
  • @Chiranjit 这很棘手。如果您创建一个 Date 对象,它将具有您的本地 timezoneOffset,除非您在那里,否则您不能保留具有 GMT 偏移量的 Date 对象。话虽如此,我将使用伪解决方案进行更新。
  • 实际上,我从服务中获取日期只是格式为“mm/dd/yyyy”的字符串,我需要从该日期开始逐周浏览。假设这一天是'02/16/2014' 那么我当前的一周将是 '02/16/2014' t0 '02/22/2014'。如果我点击下一个按钮,它将带我到下一周,依此类推。所以在上面的例子中你用'dd/mm/yyyy'格式解释了它,我们怎么能用'mm/dd/yyyy'格式做同样的事情呢?
【解决方案2】:

使用正则匹配来提取你需要的数据:

var myDate = "21|01|2014";
var data = myDate.match(/(\d{2})\|(\d{2})\|(\d{4})/);
var date = new Date(data[3], data[2] - 1, data[1]);

注意月份是从 0 开始索引的,所以一月 = 0

更多关于正则表达式:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

【讨论】:

  • 或者只使用 data = myDate.split('|') 更快
猜你喜欢
  • 2018-04-13
  • 2020-05-10
  • 2018-06-09
  • 2012-10-28
  • 2012-02-15
  • 1970-01-01
  • 2011-07-24
  • 2017-12-20
  • 1970-01-01
相关资源
最近更新 更多