使用Javascript解析并返回日期的组件

使用Javascript解析并返回日期的组件,javascript,date,Javascript,Date,我有一系列日期的格式类似于2014-12-31(年、月、日)加载到网页中 我想使用Javascript将日期重新格式化为2014年12月31日(月、日、年) 是否可以在不拆分字符串和重新格式化的情况下执行此操作;换句话说,是否可以只使用Javascripts date()函数 例如,如果我尝试: d = new Date.parse('2014-12-31') 有没有办法只返回年、月或日 我尝试了d.getYear(),但抛出了一个“未找到函数”错误 您只需使用var d=新日期('2014-

我有一系列日期的格式类似于2014-12-31(年、月、日)加载到网页中

我想使用Javascript将日期重新格式化为2014年12月31日(月、日、年)

是否可以在不拆分字符串和重新格式化的情况下执行此操作;换句话说,是否可以只使用Javascripts date()函数

例如,如果我尝试:

d = new Date.parse('2014-12-31')
有没有办法只返回年、月或日


我尝试了d.getYear(),但抛出了一个“未找到函数”错误

您只需使用
var d=新日期('2014-12-31')


Date.parse
返回自Unix纪元以来的毫秒数,而不是日期对象

您只需使用
var d=新日期('2014-12-31')


Date.parse
返回自Unix纪元以来的毫秒数,而不是日期对象

你能使用momentjs.com吗?它比默认的功能强大得多

var yourInput = "2014-12-31";
var moment = require("moment");
var d = moment(yourInput);
var iYear = d.year();
var iMonth = d.month();
var iDay = d.day();

你能使用momentjs.com吗?它比默认的功能强大得多

var yourInput = "2014-12-31";
var moment = require("moment");
var d = moment(yourInput);
var iYear = d.year();
var iMonth = d.month();
var iDay = d.day();

这是可能的,但我展示的内容并不漂亮,所以我同意使用完善的moment.js是一个更好的主意。如果您不能使用库

如果用户落后于GMT,您必须小心,因为创建新日期(没有小时时间)将设置为前一天
getTimezoneOffset()
用于将所需日期更正为午夜

此外,还必须定义要显示的月份数组。默认情况下,获取月份将返回0到11之间的整数。(1月=0)

函数myDateFormat(ymd){
var rawDate=新日期(ymd);
var midnight=新日期(rawDate.getTime()+
getTimezoneOffset()*60*1000);
风险值月份=[“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”,
“九月”、“十月”、“十一月”、“十二月”]
返回月份[midnight.getMonth()]+“”+
midnight.getDate()+,“+midnight.getFullYear();
}
//测试功能
功能显示(x){
document.getElementById(“结果”).innerHTML+=x+“\n”;
}
显示(“2015-02-15为”+myDateFormat(“2015-02-15”);
显示(“2014-12-31为”+myDateFormat(“2014-12-31”);
显示(“2015-10-10为”+myDateFormat(“2015-10-10”)

这是可能的,但我展示的内容并不漂亮,因此我同意使用完善的moment.js是一个更好的主意。如果您不能使用库

如果用户落后于GMT,您必须小心,因为创建新日期(没有小时时间)将设置为前一天
getTimezoneOffset()
用于将所需日期更正为午夜

此外,还必须定义要显示的月份数组。默认情况下,获取月份将返回0到11之间的整数。(1月=0)

函数myDateFormat(ymd){
var rawDate=新日期(ymd);
var midnight=新日期(rawDate.getTime()+
getTimezoneOffset()*60*1000);
风险值月份=[“一月”、“二月”、“三月”、“四月”,
“五月”、“六月”、“七月”、“八月”,
“九月”、“十月”、“十一月”、“十二月”]
返回月份[midnight.getMonth()]+“”+
midnight.getDate()+,“+midnight.getFullYear();
}
//测试功能
功能显示(x){
document.getElementById(“结果”).innerHTML+=x+“\n”;
}
显示(“2015-02-15为”+myDateFormat(“2015-02-15”);
显示(“2014-12-31为”+myDateFormat(“2014-12-31”);
显示(“2015-10-10为”+myDateFormat(“2015-10-10”)

日期。parse
返回时间戳,而不是日期对象(至少在firefox上是这样)。并且您不能在
日期之前添加
new
。parse
new
用于创建对象,这里您调用的是静态方法。如果您想要一个
Date
对象,只需执行
newdate('2014-12-31')
。如果您能够使用js库,我建议您使用Moment.js。有很多实用方法可以显示和解析日期
Date.parse
返回时间戳,而不是日期对象(至少在firefox上是这样)。并且您不能在
日期之前添加
new
。parse
new
用于创建对象,这里您调用的是静态方法。如果您想要一个
Date
对象,只需执行
newdate('2014-12-31')
。如果您能够使用js库,我建议您使用Moment.js。有很多实用方法可以显示和解析日期。这将返回一个NaN错误。如果我删除了“new”,那么我将返回日期。但是d.getYear()仍然不是一个函数。关于你的编辑,getYear()。这很奇怪。我在Chrome和Firefox上试用过,但无法让您的示例正常工作:您需要
new
关键字。我刚刚确认我的代码可以在Firefox和Safari控制台上运行。。。我得到的结果不一致。如果我在Firefox上运行d.getFullYear(),那么它将返回2014。但如果我在Chrome上运行同样的程序,它将返回2013年。另外,d.getYear()在Chrome上返回113。这将返回一个NaN错误。如果我删除了“new”,那么我将返回日期。但是d.getYear()仍然不是一个函数。关于你的编辑,getYear()。这很奇怪。我在Chrome和Firefox上试用过,但无法让您的示例正常工作:您需要
new
关键字。我刚刚确认我的代码可以在Firefox和Safari控制台上运行。。。我得到的结果不一致。如果我在Firefox上运行d.getFullYear(),那么它将返回2014。但如果我在Chrome上运行同样的程序,它将返回2013年。另外,d.getYear()在Chrome上返回113