[英]Convert yyyy-MM-dd to MM/dd/yyyy in javascript
這可能是一個簡單的解決方案,但我被卡住了,基本上我還需要將傳入的 yyyy-MM-dd 轉換為 MM/dd/yyyy,如果傳入日期為零,則輸出也應該為零。
傳入日期可以是以下格式
2015-01-25 or nil
輸出日期應該是
01/25/2015 or nil
我正在嘗試從以下鏈接Convert Date yyyy/mm/dd to MM dd yyyy 中的一個,但無法使其工作。
謝謝你的幫助。
忘了說,傳入的日期為 nil,在 xml 文件中采用以下格式
<Through_Date__c xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
所以如果我得到上面的格式輸出應該只是零
date toString
函數對格式有一些支持。 看到這個。 而且您還想處理我從此處獲取的未定義案例。 因此,對於您的情況,您可以這樣做:
function format(inputDate) {
var date = new Date(inputDate);
if (!isNaN(date.getTime())) {
// Months use 0 index.
return date.getMonth() + 1 + '/' + date.getDate() + '/' + date.getFullYear();
}
}
編輯:解決評論
如果填充很重要,您只需將其添加到:
var d = date.getDate().toString();
(d[1]?d:"0"+d[0])
我已經更新了小提琴
嘗試使用正則表達式:
var format = function(input) { var pattern = /(\\d{4})\\-(\\d{2})\\-(\\d{2})/; if (!input || !input.match(pattern)) { return null; } return input.replace(pattern, '$2/$3/$1'); }; console.log(format('2015-01-25')); console.log(format('2000-12-01')); console.log(format('')); console.log(format(null));
使用 String#split 和 Array#join,push & shift:
var format = function(input) { var array = (input || '').toString().split(/\\-/g); array.push(array.shift()); return array.join('/') || null; }; console.log(format('2015-01-25')); console.log(format('2000-12-01')); console.log(format('')); console.log(format(null));
如果你想采用貧民窟風格並使用易於理解的代碼,並且你不關心使用日期對象,試試這個!
function changeDateFormat(inputDate){ // expects Y-m-d
var splitDate = inputDate.split('-');
if(splitDate.count == 0){
return null;
}
var year = splitDate[0];
var month = splitDate[1];
var day = splitDate[2];
return month + '\\' + day + '\\' + year;
}
var inputDate = '2015-01-25';
var newDate = changeDateFormat(inputDate);
console.log(newDate); // 01/25/2015
如果您的日期尚未從字符串中解析出來,您可以簡單地重新排列其組件:
var s = '2015-01-25';
if (s) {
s = s.replace(/(\d{4})-(\d{1,2})-(\d{1,2})/, function(match,y,m,d) {
return m + '/' + d + '/' + y;
});
}
謝謝大家,我能夠從你所有的帖子中汲取一些想法,並提出了這段代碼,在我的情況下似乎工作正常
if((typeof inStr == 'undefined') || (inStr == null) ||
(inStr.length <= 0)) {
return '';
}
var year = inStr.substring(0, 4);
var month = inStr.substring(5, 7);
var day = inStr.substring(8, 10);
return month + '/' + day + '/' + year;
您也可以使用 vanilla JS 嘗試以下方法。 我已將日期轉換為string
並對其進行解析以獲得您要查找的格式:
function tranformDate(strDate) { let result = ''; if (date) { let parts = date.split('-'); result = `${parts[1]}/${parts[2]}/${parts[0]}`; } return result; } let date = new Date().toISOString().split('T')[0]; console.log('raw date: ' + date); console.log('formatted date: ' + tranformDate(date));
您可以處理各種格式的 javascript 日期。
對於 dd/MM/yyyy,您可以使用
var date = new Date().toLocalDateString()
要么
var date = new Date('2021-07-28').toLocalDateString()
輸出:'28/07/2021'
對於 MM/dd/yyyy
var date = new Date().toLocaleDateString("en-US", { year: "numeric", month: "2-digit", day: "2-digit" })
要么
var date = new Date('2021-07-28').toLocaleDateString("en-US", { year: "numeric", month: "2-digit", day: "2-digit" })
輸出:'07/28/2021'
或者,您可以使用以下日期函數處理自定義日期格式
let date = new Date()
let dateString = [
date.getMonth() + 1,
date.getDate(),
date.getFullYear(),
].join('/')
}
輸出:07/28/2021
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.