一个双重 JavaScript 函数,用于转换长日期并以 mm-dd-yyyy 格式返回今天的日期



我需要你的帮助,

我似乎在网上找不到任何其他的帮助,因为它似乎是一种方式或另一种。我想要做的是创建一个组合的,双重javascript函数,将一个长日期字符串转换成mm-dd-yyyy格式,当相同的函数再次调用,没有指定的字符串转换,只是返回今天的日期mm-dd-yyyy格式。

的例子:

getDate(Fri May 22 2015 13:32:25 GMT-0400)

将返回:05-22-2015

getDate()

将返回今天的日期05-23-2015

嗨,这应该能成功

格式: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。打开控制台查看结果。https://jsfiddle.net/wt79yLo0/2/

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"));
https://jsfiddle.net/wt79yLo0/

首先我要推荐一个非常强大的JS库Moment.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

getDate(), getMonth()getFullYear()。您必须在月份天数 (< 10)之前设置"0"。GetMonth()以0开头,因此(getMonth() + 1)

function getFormattedDate() {
    var date = new Date();
    var day = date.getDate() > 9 ? date.getDate() : "0" + date.getDate();
    var month = (date.getMonth() + 1) > 9 ? (date.getMonth() + 1) : "0" + (date.getMonth() + 1);
    var year = date.getFullYear();
    var formattedDate = day + "-" + month + "-" + year;
    return formattedDate;
}
console.log(getFormattedDate());
演示

相关内容

  • 没有找到相关文章

最新更新