當談到日期時,我有這個奇怪的問題。我試圖從使用日期的mongodb中獲得一個值。我知道發生了什麼,這就是爲什麼即使他們有相同的日期,什麼都沒有被返回。這裏的過程:即使日期時間值相同,Linq查詢也不會返回任何內容
我從數據庫中使用Id拉數據,現在我得到的記錄有一個日期。這個日期正在我的視圖中顯示。這是我如何做到的。
操作:
public JsonResult GetDateSentList(string id)
{
var data = ApiHelper<List<SomeModel>>.Get("SomeController/SomeAction?id=" + id); //I created a helper for requests
var distinctData = data.Select(a => a.DateOfEvent).Distinct().ToList();
foreach (var item in distinctData)
{
var dateData = new SomeModel();
dateData = data.FirstOrDefault(a => a.DateOfEvent == distinctData[i]);
dateData.DateOfEventString = dateData.DateOfEvent.ToString(@"MM-dd-yyyy hh:mm", new CultureInfo("en-US"));
dateData.DateOfEventExactString = dateData.DateOfEvent.ToString(@"MM-dd-yyyy hh:mm:ss tt", new CultureInfo("en-US"));
}
return Json(listDistinctData);
}
正如你可以看到這是由Ajax調用訪問和使用JS正在這裏顯示的數值(日期字符串)。
下面是我在這一點上所獲得的價值:2014年6月30日上午07時01分17秒(這是目前在HTML值的字符串)現在
,在按下按鈕,我將相同的日期字符串傳遞給動作,並且此動作向WebApi執行請求。
在WebApi上,字符串正在轉換爲dateTime(request.DateSent),在這一點上,我試圖獲得與第一部分相同的記錄,使用我在記錄中獲得的日期我想得到。
x= someService.All().FirstOrDefault(c => c.DateOfEvent == request.DateSent);
我檢查了我想要得到的記錄,它有一個日期時間值2014年6月30日上午07時01分17秒,並且我用得到,我想有記錄的日期時間相同的DateTime值6/30/2014 7:01:17 AM。可悲的是,我一直得到一個空值。這裏發生的事情導致他們不平等,但我根本無法追查它。有任何想法嗎?謝謝!
也許毫秒(沒有顯示)是不同的?此外,可能還有一些時區問題。 – Davio
是這樣,所以我真的需要具有完全相同的值,直到每個細節。嗯,我怎麼能比較它們只是注意到這種格式(mm-dd-yy hh:mm:ss tt)? – ljpv14
您正在使用'foreach'來獲取每個單獨的'item',但是您從不在循環中使用'item'變量!不應該在foreach中的第二行讀取'dateData = data.FirstOrDefault(a => a.DateOfEvent == item);'?如果不是,那麼'foreach'裏的變量'i'的值是多少? –