How to parse a date like '2009-09-13' in D3.JS or moment
我有几个日期作为字符串,其格式为:
1 | var origDate = '2009-09-13' |
我想解析它们,以便将它们写成月(缩写或整月),日,年,如:2009年9月9日
..在D3.JS或Moment.JS中有没有办法做到这一点?
现在,我正在使用此D3公式来解析日期:
1 | var format = d3.time.format("%Y-%m-%d").parse; |
但是当我这样做:
我得到了很长的约会,例如:
在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
在字符串上使用
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对象具有
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/