위의 답변 중 어느 것도 실제로 도움이되지 않았 으므로이 문제에 대한 해결책을 찾고 있습니다. jquery week calendar로 작업하고 있으며 서버 및 로컬 페이지에서 시간대 정보를 사용하려면 날짜가 필요했습니다. 꽤 파고 들자 다른 사람들을 도울 수있는 솔루션을 찾았습니다.
asp.net 3.5, 2008 vs. asp.net MVC 2 및 jquery week calendar를 사용하고 있습니다.
먼저 Steven Levithan이 작성한 라이브러리를 사용하여 클라이언트 측 의 날짜 인 Steven Levithan의 날짜 라이브러리 를 처리하는 데 도움을줍니다 . isoUtcDateTime 형식은 내가 필요한 것에 완벽합니다. jquery AJAX 호출에서 라이브러리와 함께 제공된 isoUtcDateTime 형식의 format 함수를 사용하고 ajax 호출이 내 액션 메소드에 도달하면 datetime Kind가 local로 설정되고 서버 시간을 반영합니다.
AJAX를 통해 페이지에 날짜를 보내면 "ddd, dd MMM yyyy HH ':'mm ':'s'GMT'zzzz"를 사용하여 날짜를 형식화하여 텍스트 문자열로 보냅니다. 이 형식은 다음을 사용하여 클라이언트 측에서 쉽게 변환됩니다.
var myDate = new Date(myReceivedDate);
Steve Levithan의 소스를 뺀 나의 완전한 해결책은 다음과 같습니다.
제어 장치:
public class HomeController : Controller
{
public const string DATE_FORMAT = "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'zzzz";
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
public JsonResult GetData()
{
DateTime myDate = DateTime.Now.ToLocalTime();
return new JsonResult { Data = new { myDate = myDate.ToString(DATE_FORMAT) } };
}
public JsonResult ReceiveData(DateTime myDate)
{
return new JsonResult { Data = new { myDate = myDate.ToString(DATE_FORMAT) } };
}
}
자바 스크립트 :
<script type="text/javascript">
function getData() {
$.ajax({
url: "/Home/GetData",
type: "POST",
cache: "false",
dataType: "json",
success: function(data) {
alert(data.myDate);
var newDate = cleanDate(data.myDate);
alert(newDate);
sendData(newDate);
}
});
}
function cleanDate(d) {
if (typeof d == 'string') {
return new Date(d) || Date.parse(d) || new Date(parseInt(d));
}
if (typeof d == 'number') {
return new Date(d);
}
return d;
}
function sendData(newDate) {
$.ajax({
url: "/Home/ReceiveData",
type: "POST",
cache: "false",
dataType: "json",
data:
{
myDate: newDate.format("isoUtcDateTime")
},
success: function(data) {
alert(data.myDate);
var newDate = cleanDate(data.myDate);
alert(newDate);
}
});
}
// bind myButton click event to call getData
$(document).ready(function() {
$('input#myButton').bind('click', getData);
});
</script>
이 빠른 예제가 내가했던 것과 같은 상황에서 다른 사람들을 도울 수 있기를 바랍니다. 현재는 Microsoft JSON 직렬화와 매우 잘 작동하며 시간대에 따라 날짜를 정확하게 유지합니다.