我有一个日期值2016-02-18,我想将其转换为Feb 18

我尝试了以下代码,但它返回错误消息get.month不是函数。我也尝试过使用format.parse(),但这也不起作用。

我的代码:

var dateLast = "2016-02-18";
var date = Date.parse(dateLast.replace(/-/g,"/"));
var format =  d3.time.format("%b-%d");
var dateConvert = format(date);
console.log(dateConvert);

错误消息:

最佳答案

D3.js方式:

使用d3.time.format,这是实现目标的最有效方法,它是:

var dateLast = "2016-02-18";
var format = d3.time.format("%b %d");
var dateConvert = format(new Date(dateLast));

alert(dateConvert); // Output : Feb 18

(另请参见this Fiddle)

因此,基本上,您根本不需要此dateLast.replaceDate.parse。您可以直接将日期字符串直接用作new Date()的输入。

Vanilla JS方式:

就个人而言,我什至根本不会使用d3(或任何其他库)来格式化日期。您可以在 Vanilla JS中使用几乎相同的代码量来完成此操作:

var dateLast = "2016-02-18";
var format = { month : 'short', day : 'numeric' };
var dateConvert = new Date(dateLast).toLocaleDateString('en-US', format);

alert(dateConvert); // Output : Feb 18


(另请参见this Fiddle)。

09-25 16:20
查看更多