[英]Convert Date from json to datetime
我有一個函數可以將步驟發送到我的C#控制器。
$scope.saveProgress = function () {
var step6 = {
Id: $scope.stepId,
ProblemId: $scope.problemId,
WhenOptions: $scope.whenOptions,
CounterMeasures: $scope.counterMeasures,
CounterMeasureWhens: $scope.counterMeasureWhens,
CompletedDate: $scope.CompletedDate
// step 6 specific data
};
$http.post(ROOT + '/step/SaveA3Step6/', step6)
.success(function (result) {
// log to console?
}).
error(function (data, status, headers, config) {
// log to console?
});
};
一切正常,但在我的c#控制器中,日期始終以null結尾。
public JsonResult SaveA3Step6(A3Step6 a3Step6)
{
try
{
a3Step6.Save();
return Json("OK", JsonRequestBehavior.AllowGet);
}
catch (Exception e)
{
return Json("Error" + e.Message);
}
}
調試時,我發現$scope.CompletedDate
的格式為"/Date(1426636800000)/"
。 並且由於我在C#中的A3Step6對象期望的日期時間顯示為null。
有沒有一種方法可以將我的$scope.CompletedDate
轉換$scope.CompletedDate
我的$scope.saveProgress
函數中的日期時間,然后再將其發布回c#控制器?
您可以使用DateTime.ParseExact來指定解析日期所需的格式。
例如,如果在JS中具有以下格式的日期時間:
var d = Date(2015,3,18,11,22,25,0)
'Wed Mar 18 2015 11:28:35 GMT+0200'
您可以使用以下命令在C#中對其進行解析:
DateTime dt = DateTime.ParseExact(a3Step6,
"ddd MMM d yyyy HH:mm:ss GMTzzzzz",
CultureInfo.InvariantCulture);
您可以重用Angularjs的日期過濾器。 您必須將$ filter注入控制器的構造函數中。
var cpltDate = $filter('date')($scope.CompletedDate, 'MM/dd/yyyy');
var step6 = {
Id: $scope.stepId,
ProblemId: $scope.problemId,
WhenOptions: $scope.whenOptions,
CounterMeasures: $scope.counterMeasures,
CounterMeasureWhens: $scope.counterMeasureWhens,
CompletedDate: cpltDate
};
日期過濾器的完整文檔: https : //docs.angularjs.org/api/ng/filter/date
new Date().toJSON()
應該也可以。 代替新的Date(),使用您想要的任何JavaScript Date對象。 默認的MVC modelbinder可以很好地處理此問題。
這里的問題似乎是$scope.CompletedDate
是日期的字符串命令( "Date(1426636800000)"
)。 必須對其進行評估以獲得日期。
使用eval($scope.CompletedDate)
或eval($scope.CompletedDate).toUTCString()
可能會解決此問題。
var step6 = {
Id: $scope.stepId,
ProblemId: $scope.problemId,
WhenOptions: $scope.whenOptions,
CounterMeasures: $scope.counterMeasures,
CounterMeasureWhens: $scope.counterMeasureWhens,
CompletedDate: eval($scope.CompletedDate)
// step 6 specific data
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.