关于javascript:如何解析D3.JS中的日期或“ 2009-09-13”之类的日期

How to parse a date like '2009-09-13' in D3.JS or moment

我有几个日期作为字符串,其格式为:YYYY-MM-DD。 因此,例如:

1
var origDate = '2009-09-13'

我想解析它们,以便将它们写成月(缩写或整月),日,年,如:2009年9月9日

..在D3.JS或Moment.JS中有没有办法做到这一点?

现在,我正在使用此D3公式来解析日期:

1
var format = d3.time.format("%Y-%m-%d").parse;

但是当我这样做:format(origDate)时,
我得到了很长的约会,例如:
enter image description here


在D3.JS中有办法做到这一点吗?

是。 你的线

1
var format = d3.time.format("%Y-%m-%d").parse;

正在创建一个日期对象。 您需要对对象应用格式以获得所需的输出字符串:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// working date:
var string = '2009-05-01';

// set up a format
var format = d3.time.format("%Y-%m-%d");

// convert the date string into a date object:
var date = format.parse(string);

// output the date object as a string based on the format:
console.log(format(date));

// use the desired format
var format1 = d3.time.format("%B %d, %Y");

// output a date as a string in the desired format
console.log(format1(date));
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js">


香草JS

在字符串上使用new Date构造函数(采用受支持的格式),然后使用格式函数将每个月映射到其缩写,并包括其他信息。

1
2
3
4
5
6
7
8
9
10
11
var abbr = 'Jan. Feb. Mar. Apr. May June July Aug. Sept. Oct. Nov. Dec.'.split(' ')

function format (date) {
  return abbr[date.getUTCMonth()] + ' ' + date.getUTCDate() + ', ' + date.getUTCFullYear()
}

var origDate = '2009-09-13'

console.log(
  format(new Date(origDate))
)

Moment.js

Moment.js对象具有format函数,该函数采用格式字符串。 有关您可以使用的参数的完整列表,请参见显示的文档。

1
2
3
4
5
var origDate = '2009-09-13'

console.log(
  moment.utc(origDate).format('MMM. D, YYYY')
)

1
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js">


使用瞬间可以做到这一点:

1
2
3
4
5
var origDate = '2009-09-13'

mDate = moment(origDate);

console.log(mDate.format("DD/MM/YYYY"));

https://jsfiddle.net/0p2c6zjo/