正在根据字符串创建日期

Creating date from string

本文关键字:字符串 创建日期      更新时间:2023-09-26

我有一个格式如下的字符串:January 3 2016。我试过做new Date(Date.parse(string)),但收到一个无效的日期警告。我是不是错过了什么?我的最终目标是将该日期转换为mm/dd/yyyy格式,一旦我使用Date格式,我就可以这样做了。

感谢

在不使用date或库的情况下转换/格式化日期字符串的示例。

var monthLookup = {
  january: '01',
  february: '02',
  march: '03',
  april: '04',
  may: '05',
  june: '06',
  july: '07',
  august: '08',
  september: '09',
  october: '10',
  november: '11',
  december: '12'
};
function customParseAndformat(dateString) {
  var parts = dateString.split(' ');
  parts[0] = monthLookup[parts[0].toLowerCase()];
  parts[1] = parts[1] < 10 ? '0' + parts[1] : parts[1];
  return parts.join('/');
}
var myDateString = 'January 3 2016';
document.getElementById('out').textContent = customParseAndformat(myDateString);
<pre id="out"></pre>

您可以使用类似的方法从离散值中解析和创建Date对象,这比Date.parse更可靠(跨环境)。示例

var monthLookup = {
  january: '01',
  february: '02',
  march: '03',
  april: '04',
  may: '05',
  june: '06',
  july: '07',
  august: '08',
  september: '09',
  october: '10',
  november: '11',
  december: '12'
};
function parseAndCreateDate(dateString) {
  var parts = dateString.split(' ');
  parts[0] = monthLookup[parts[0].toLowerCase()] - 1;
  parts[1] = parts[1] < 10 ? '0' + parts[1] : parts[1];
  return new Date(parts[2], parts[0], parts[1]);
}
var myDateString = 'January 3 2016';
document.getElementById('out').textContent = parseAndCreateDate(myDateString).toDateString();
<pre id="out"></pre>

现在,您可以使用返回的Date对象的方法对其进行格式化。

在哪里可以找到有关用JavaScript格式化日期的文档?

对我来说,它正在工作:Date(Date.parse('January 3 2016'))

用Javascript分析日期是很棘手的。它既依赖于浏览器,又依赖于文化,这是一个很难应对的挑战。

如果您针对多个浏览器和多个国家/地区,我建议您使用moment.js