我有一個奇怪的情況。當我從視圖發送日期時間值到控制器與Ajax,在控制器中的值改變。日期發生變化時,發送到控制器與AJAX
例如,如果我的視圖有'30 -08-2014'值(dd-MM-yyyy格式),則在我的控制器中收到'29-08-2014 23:00:00'。
我認爲這個問題是一個無效的時區,但無論是瀏覽器和應用程序(控制器)在我的本地計算機上運行,所以他們應該有相同的時區
我當前時區爲UTC -04:00聖地亞哥
此代碼生成的註釋問題
索引視圖
@{
Layout = "";
}
<html>
<head>
<script src="@Url.Content("~/Content/Plugins/jQuery/jquery-1.11.3.min.js")"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$('#send-date').on('click', function() {
$('#value-from-user').val($('#my-date').val().toDate().toISOString());
var myData = { myDate: $('#my-date').val().toDate().toISOString() };
$.ajax("Test/Date", {
data: myData,
dataType: 'HTML',
processData: true,
method: 'POST',
success: function(data) {
$('#result').html(data);
}
});
});
});
//input is dd-MM-yyyy format
String.prototype.toDate = function() {
var parts = this.split("-");
return new Date(parts[2], parts[1] - 1, parts[0]);
}
</script>
</head>
<body>
<input type="text" id="value-from-user" disabled/> <br />
<label for="my-date">Input in dd-MM-yyyy format</label><input type="text" name="my-date" id="my-date" value="30-08-2014"/> <br/>
<input type="button" name="send-date" id="send-date" value="Send Date"/><br/>
<div id="result">
</div>
</body>
</html>
日期查看
@model DateTime
@{
Layout = "";
}
@string.Format("Input date is {0}", Model.ToString("dd-MM-yyyy HH:mm:ss.fff tt"))
控制器
public class TestController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Date(DateTime myDate)
{
return PartialView(myDate);
}
}
Acording到文檔(HTTPS://developer.mozilla .org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString),在toISOString()時區始終爲零的UTC偏移量。 –