2017-08-24 42 views
2

試圖在標題來概括儘可能多的,但可能不是那麼清楚。返回日期,如果日期欄和字符串「 - 」時,空,而且還傳給前面日期,不串

這是它。

我有外連接,返回日期列的查詢。所以,我會在結果行中有'空日期'。爲此,我使用ifnull()處理將該空虛更改爲「 - 」。

問題是,列不能在前端使用像{{order.LastDateOrder | date : "dd-MMMM-yyyy HH:mm:ss"}}處理。當列包含數據時,它顯示爲'2017-06-05 07:27:50'的格式,而實際上我想顯示它爲'05 June 2017 07:27:50'null值應顯示爲" - "

有什麼替代品可以實現我想要的?

(我使用MySQL和角)

謝謝

回答

1

我建議完全處理對事物的MySQL的側格式。考慮以下查詢:

SELECT 
    t1.id, 
    COALESCE(DATE_FORMAT(t2.col, '%d-%m-%Y %H:%i:%s'), '-') AS date_label 
FROM table1 t1 
LEFT JOIN table2 t2 
    ON t1.id = t2.t1_id 

然後,在角度方面,只顯示一個基本的字符串,不需要特殊的格式。

我的做法的JIST是我們把你的日期列到你想要的字符串格式,但如果NULL我們只是用破折號代替。我們在MySQL中這樣做,我們可以使用COALESCE輕鬆處理NULL值。

0

我已創建自定義過濾器的名稱formatDate並在您的視圖,你可以使用它作爲{{order.LastDateOrder | formatDate}}。希望它能幫助你。

angular.module('test').filter('formatDate', function() { 
    return function (date) { 
     var mydate = new Date(date); 
     var month=["January", "February", "March", "April", "May", "June", 
      "July", "August", "September", "October", "November", "December" 
     ]; 
     return mydate.getDate() + month[mydate.getMonth()] + mydate.getFullYear() + mydate.getHours()+ mydate.getMinutes()+ mydate.getSeconds(); 

    } 
}) 
相關問題