2017-03-06 57 views
-1

我從服務器日期,有時null,我的過濾器解析/Date(-62135596800000)/0001-01-01但我想有空字符串。如何解析/日期(-62135596800000)/爲空

我該怎麼做? 這裏是我的過濾器:

filter('myDateFormat', function() { 
    return function (data) { 
     return moment(data).format("YYYY-MM-DD"); 
    }; 
}) 
+0

當你想要一個空字符串? – VincenzoC

+0

如果日期是/日期(-62135596800000)/?我知道我可以使用,但我正在尋找更好的溶劑 – Cieja

+0

只是爲了那個單一的輸入?我看到沒有更好的解決方案,然後使用一個簡單的'if'語句 – VincenzoC

回答

1

嗯,你的服務器返回您null或日期字符串。 null可以通過簡單的空檢查來處理,但對於其他輸入"Date(-62135596800000)"這是一個有效的日期,如果不明確檢查它,則不能返回空字符串。

moment(Date(-62135596800000)).isValid() // return 'true' 

你可以嘗試下面的代碼。

// if inputDate not defined or null  
if (!inputDate || inputDate == null) { 
     return ''; 
} else if (moment(inputDate).isValid()){ 
     return moment(inputDate).format("DD MM YYYY"); 
} else { 
     return ''; 
} 

但如果你的服務器是偶爾回到這個特定日期「日期(-62135596800000)」,並要避免這種情況,你可以把直接檢查它。

if (!inputDate || inputDate == null) { 
    return ''; 
} 

if (inputDate == 'Date(-62135596800000)') { 
    return ''; 
} else if (moment(inputDate).isValid()) { 
    return moment(inputDate).format("DD MM YYYY"); 
} else { 
    return ''; 
} 
0

的過濾器可以這樣加以改進:

filter('myDateFormat', function() { 
    return function (data) { 
     return data > 0 ? moment(data).format("YYYY-MM-DD") : ""; 
    }; 
}) 
+0

這是行不通的。 – Cieja

+0

只有代碼和「嘗試這個」的答案通常是不鼓勵的;試着解釋變化是什麼以及爲什麼它應該起作用。 – user5226582

+0

我以爲你想要將空數據解析爲空字符串。如果你想將負值解析爲空字符串,你應該檢查數據是否爲正數。 我已經用數據正面檢查更新了我的答案。 – bluehipy

0

首先,決定什麼應該是你最低日期。
例如SQL的最小日期爲1753-01-01
之後,與此最低日期像您指定的日期:

filter('myDateFormat', function() { 
    return function (data) { 
     var minDate = moment('1753-01-01');// decide your minimum date 
     return moment(data).diff(minDate) > 0 ? moment(data).format("YYYY-MM-DD") : ""; 
    }; 
})