Javascript 编写一个函数,将格式为M/D/YYYY的用户输入日期转换为API所需的格式(YYYYMMDD)
编写一个函数,将格式为M/D/YYYY的用户输入日期转换为API所需的格式(YYYYMMDD)。参数“userDate”和返回值是字符串。 例如,它应该将用户输入的日期“12/31/2014”转换为适用于API的“20141231”。 我试过:Javascript 编写一个函数,将格式为M/D/YYYY的用户输入日期转换为API所需的格式(YYYYMMDD),javascript,Javascript,编写一个函数,将格式为M/D/YYYY的用户输入日期转换为API所需的格式(YYYYMMDD)。参数“userDate”和返回值是字符串。 例如,它应该将用户输入的日期“12/31/2014”转换为适用于API的“20141231”。 我试过: 函数formatDate(userDate){ //格式从M/D/YYYY到YYYYMMDD a=新日期(userDate); y=a.getFullYear(); m=a.getMonth(); d=a.getDate(); 返回y.toString
函数formatDate(userDate){
//格式从M/D/YYYY到YYYYMMDD
a=新日期(userDate);
y=a.getFullYear();
m=a.getMonth();
d=a.getDate();
返回y.toString()+m.toString()+d.toString();
}
控制台日志(格式日期(“2014年12月31日”)
String#split()
指定/
上的日期,然后指定生成的日期、月份和年份
函数AddLeadingZero(num){
返回值(num<10?'0':'')+num;
}
函数formatDate(userDate){
var[month,day,year]=userDate.split('/');
返回年份+加铅零(月)+加铅零(日);
}
控制台日志(格式日期(“2014年12月31日”);
控制台日志(格式日期(“2014年1月10日”)
String#split()
指定/
上的日期,然后指定生成的日期、月份和年份
函数AddLeadingZero(num){
返回值(num<10?'0':'')+num;
}
函数formatDate(userDate){
var[month,day,year]=userDate.split('/');
返回年份+加铅零(月)+加铅零(日);
}
控制台日志(格式日期(“2014年12月31日”);
控制台日志(格式日期(“2014年1月10日”)代码>问题在于,它返回一个从0到11的月指数,因此12月显示为11,而不是12 问题是,它返回一个从0到11的月指数,因此12月份显示为11,而不是12 我很确定Date
的构造函数不需要任意格式的字符串,就是这样。想想当月份(或日期)小于10时会发生什么。另外,Date.prototype.getMonth
返回一个从0到11的月份索引,这是有原因的。您是否考虑过只使用
?它以Y-m-d
格式返回一个日期,这是明确的,对于你的API(这很奇怪),你只需去掉-
就可以了,你的输出月份是11
。你刚刚得到了一大堆答案。我很确定Date
的构造函数不需要任意格式的字符串,所以就是这样。想想当月份(或日期)小于10时会发生什么。另外,Date.prototype.getMonth
返回一个从0到11的月份索引,这是有原因的。您是否考虑过只使用
?它以Y-m-d
格式返回一个日期,这是明确的,而对于你的API(这很奇怪),你只需去掉-
s,你就完成了。首先,你的输出月份是11
。你就得到了一大堆答案。
var convertDate = function(usDate) {
var dateParts = usDate.split(/(\d{1,2})\/(\d{1,2})\/(\d{4})/);
return dateParts[3] + dateParts[1] + dateParts[2];
}
var inDate = "12/31/2014";
var outDate = convertDate(inDate);
alert(outDate);