一个双重javascript函数,用于转换长日期并在今天返回';s日期的格式为mm dd yyyy
我需要你的帮助 我在互联网上找不到任何其他的帮助,因为这似乎是一种方式或另一种方式。我希望能够创建一个组合的、双重的javascript函数,将长日期字符串转换为mm dd yyyy格式,当再次调用相同的函数时,没有指定要转换的字符串,只返回mm dd yyyy格式的今天的日期 例如:一个双重javascript函数,用于转换长日期并在今天返回';s日期的格式为mm dd yyyy,javascript,date,datetime,Javascript,Date,Datetime,我需要你的帮助 我在互联网上找不到任何其他的帮助,因为这似乎是一种方式或另一种方式。我希望能够创建一个组合的、双重的javascript函数,将长日期字符串转换为mm dd yyyy格式,当再次调用相同的函数时,没有指定要转换的字符串,只返回mm dd yyyy格式的今天的日期 例如: getDate(Fri May 22 2015 13:32:25 GMT-0400) 返回日期:2015年5月22日 getDate() 将返回今天的日期2015年5月23日嗨,这应该可以实现 格式:mm d
getDate(Fri May 22 2015 13:32:25 GMT-0400)
返回日期:2015年5月22日
getDate()
将返回今天的日期2015年5月23日嗨,这应该可以实现 格式:mm dd yyyy
function addZeroIfRequired(dayOrMonth) {
return dayOrMonth > 9 ? dayOrMonth : "0"+dayOrMonth;
}
function getDate(dateString) {
var date = dateString ? new Date(dateString) : new Date();
return addZeroIfRequired((date.getUTCMonth()+1)) + "-" +
addZeroIfRequired(date.getDate())+ "-" +
date.getUTCFullYear();
}
console.log(getDate()); // 05-23-2015
console.log(getDate("Fri May 22 2015 13:32:25 GMT-0400")); 05-22-2015
注意:getUTCMonth()之后的+1
JSFiddle。打开控制台查看结果
ISO格式:yyyy-mm-dd
为了防止有人对相反的格式感兴趣,代码会更漂亮、更整洁:
function getDate(dateString) {
var date = dateString ? new Date(dateString) : new Date();
return date.toISOString().substring(0, 10);
}
console.log(getDate());
console.log(getDate("Fri May 22 2015 13:32:25 GMT-0400"));
使用getDate()
,getMonth()
和getFullYear()
。您必须在<10
的月和日之前设置“0”GetMonth()
以0开头,因此(GetMonth()+1)
首先,我推荐一个非常强大的JS库,它可以解决所有此类问题
但如果你只想要一个片段,我的建议如下:
function twoDigits(num) {
return ("0" + num).substr(-2);
}
function getFormattedDateDMY(date, separator) {
var day = twoDigits(date.getDate());
var month = twoDigits(date.getMonth());
var year = date.getFullYear();
return [day,month,year].join(separator);
}
function getFormattedDateMDY(date, separator) {
var day = twoDigits(date.getDate());
var month = twoDigits(date.getMonth());
var year = date.getFullYear();
return [month,day,year].join(separator);
}
console.log(getFormattedDateDMY(new Date(), "-")); //23-04-2015
console.log(getFormattedDateMDY(new Date(), "-")); //04-23-2015
谢谢,我试过了,但它将日期格式设置为2015-05-23(yyyy-mm-dd)。我需要mm-dd yyyy不保证有效。您正在向date传递一个非标准日期格式,该格式实际上应该接受“表示RFC2822或ISO 8601日期的字符串(可能使用其他格式,但结果可能是意外的)。”()您希望支持的唯一格式是Fri may 22 2015 13:32:25 GMT-0400
吗?请参阅
function twoDigits(num) {
return ("0" + num).substr(-2);
}
function getFormattedDateDMY(date, separator) {
var day = twoDigits(date.getDate());
var month = twoDigits(date.getMonth());
var year = date.getFullYear();
return [day,month,year].join(separator);
}
function getFormattedDateMDY(date, separator) {
var day = twoDigits(date.getDate());
var month = twoDigits(date.getMonth());
var year = date.getFullYear();
return [month,day,year].join(separator);
}
console.log(getFormattedDateDMY(new Date(), "-")); //23-04-2015
console.log(getFormattedDateMDY(new Date(), "-")); //04-23-2015