簡體   English   中英

如何在C#mvc5中的字符串中轉換日期時間,以使其不獲取空日期時間值

[英]how to convert a date-time in string in C#mvc5 so that it doesnot get null date time value

我正在創建一個項目,我想在其中將數據庫中的日期存儲在列表中。 我使用MVC5和C#。 在相應的控制器中,我將來自數據庫的值傳遞為:

var order1 = (from a in context.DB_OrderDetails
              where a.OrderId == id
              select new
              { 
                  a.ActualCompletedAt,
              }).ToList();    

然后用腳本寫

for (i = 0; i < result.order1.length; i++) {
    str += '<tr>';
    str += '<td> ' + order1[i].ActualCompletedAt + '</td>';
    str += '<tr/>';
}

但是在列表中,我在數據庫中獲得的值為date / 878978978979等,就像“ 2015-09-24 14:59:10.837”,即正確的日期和時間。 我需要在Linq查詢中進行哪些修改,以使日期不為空?

您應該調用ToString並正確設置其格式:

ActualCompletedAt = a.ActualCompletedAt("MM/dd/yyyy")

我想ActualCompletedAt是一個DateTime對象。 如果這是一個可為空的DateTime對象,則必須首先進行檢查。

ActualCompletedAt = a.ActualCompletedAt != null ? a.ActualCompletedAt.Value("MM/dd/yyyy") : ""

這就是json序列化程序處理日期的方式。 我敢肯定有一種方法可以控制它的完成方式,但是一個簡單的解決方法是在控制器中的ActualCompletedAt之后附加.ToString(),從而在控制器中以字符串形式返回日期。

(更新)

我同意PeteGO的觀點,認為結果與空值無關。

但是要回答您的問題,為避免出現空值,可以使用:

var order1 = (from a in context.DB_OrderDetails
                      where a.OrderId == id
                      and a.ActualCompletedAt != null
                      select new
                     { 
                        a.ActualCompletedAt.ToString("yyyy-MM-dd hh:mm:ss.fff"),
                     }).ToList();   

然后在腳本中:

for (i = 0; i < result.order1.length; i++) {
    str += '<tr>';
    str += '<td> ' + order1[i].ActualCompletedAt + '</td>';
    str += '<tr/>';
}

暫無
暫無

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

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