簡體   English   中英

在javascript中將yyyy-MM-dd轉換為MM/dd/yyyy

[英]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.

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