簡體   English   中英

雙重javascript函數,用於轉換長日期並以mm-dd-yyyy格式返回今天的日期

[英]A twofold javascript function to convert a long date and return today's date in mm-dd-yyyy format

我需要你的幫助,

我似乎在互聯網上找不到任何其他幫助,因為這似乎是另一種方法。 我想做的是創建一個組合的雙重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-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/

使用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());

演示版

首先,我將推薦一個非常強大的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM