MVC 에서 ajax 호출 날짜 차이 계산
20791 단어 Ajax
서비스 항목 이미 서비스 기간 시작 시간 From - To
현재 사용자 가 입력 한 새로운 시작 시간 과 이 서비스 기간 의 기 존 구간 값 에 따라 새로운 서비스 기간 마감 시간 을 계산 해 야 합 니 다.
즉 NewServiceToDateTime = NewServiceFromDateTime + (OldServiceToDateTime - OldServiceFromDateTime)
이 예제 의 효과:
1. 날짜 변환 및 차액 계산
2. mvc 에서 ajax 호출 및 할당
관련 코드 는 다음 과 같 습 니 다.
백 스테이지 컨트롤 러 아래 액 션 처리
public DateTime GetDateTimeParseStr(string strDate,string strDateH,string strDateM) {
DateTime dt = new DateTime();
if (strDate.Contains("/"))
{
dt = DateTime.ParseExact(strDate, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
}
else if (strDate.Contains("-"))
{
dt = DateTime.ParseExact(strDate, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
}
else
{
dt = DateTime.Parse(strDate);
}
if (!string.IsNullOrEmpty(strDateH)) {
dt = dt.AddHours(int.Parse(strDateH));
}
if (!string.IsNullOrEmpty(strDateM))
{
dt = dt.AddMinutes(int.Parse(strDateM));
}
return dt;
}
public DateTime GetNewToDateTime(DateTime from, DateTime to, DateTime newFrom)
{
TimeSpan tsFrom = new TimeSpan(from.Ticks);
TimeSpan tsTo = new TimeSpan(to.Ticks);
TimeSpan tsNewFrom = new TimeSpan(newFrom.Ticks);
DateTime dtNewTo = newFrom.AddTicks(tsTo.Subtract(tsFrom).Ticks);
return dtNewTo;
}
public JsonResult GetNewToDateTimeJson(string strFrom,string strFromH,string strFromM
,string strTo,string strToH ,string strToM,
string strFromNew, string strFromHNew, string strFromMNew)
{
try
{
DateTime from = GetDateTimeParseStr(strFrom, strFromH,strFromM);
DateTime to = GetDateTimeParseStr(strTo, strToH, strToM);
DateTime newFrom = GetDateTimeParseStr(strFromNew, strFromHNew, strFromMNew);
DateTime dtNewTo = GetNewToDateTime(from, to, newFrom);
return Json(new
{
Success = true
,
ServiceToDateTitle = dtNewTo.FormatDateAndTimeNoSecond()
,
ServiceToDate = dtNewTo.ToString("yyyy-MM-dd")
,
ServiceToDateH = dtNewTo.Hour.ToString().PadLeft(2, '0')
,
ServiceToDateM = dtNewTo.Minute.ToString().PadLeft(2, '0')
}, JsonRequestBehavior.AllowGet);
}
catch (Exception)
{
return Json(new
{
Success = false
}, JsonRequestBehavior.AllowGet);
}
}
프론트 aspx 의 Ajax 호출
<script type="text/javascript">
function changeServicePeriod() {
var dateFrom = $("#ServiceFromDate").val();
var datefromHH = $("#ServiceFromDateH").val();
var dateFromMM = $("#ServiceFromDateM").val();
if (dateFrom != "") {
var item = eval("(" + $("#itemdata").val() + ")");
var dateFromOld = item.ServiceFromDate;
var dateFromHHOld = item.ServiceFromDateH;
var dateFromMMOld = item.ServiceFromDateM;
var dateToOld = item.ServiceToDate;
var dateToHHOld = item.ServiceToDateH;
var dateToMMOld = item.ServiceToDateM;
var url = '<%=Url.Action("GetNewToDateTimeJson", "ServiceItem") %>';
$.ajax({
type: "get",
async: false,
url: url,
data: {
strFrom: dateFromOld
, strFromH: dateFromHHOld
, strFromM: dateFromMMOld
, strTo: dateToOld
, strToH: dateToHHOld
, strToM: dateToMMOld
, strFromNew: dateFrom
, strFromHNew: datefromHH
, strFromMNew: dateFromMM
},
dataType: "json",
success: function (jsonData, textStatus) {
if (jsonData.Success) {
$("#ServiceToDateTitle").val(jsonData.ServiceToDateTitle);
$("#ServiceToDate").val(jsonData.ServiceToDate);
$("#ServiceToDateH").val(jsonData.ServiceToDateH);
$("#ServiceToDateM").val(jsonData.ServiceToDateM);
} else {
$("#ServiceToDate").val("");
$("#ServiceToDateTitle").val("");
$("#ServiceToDateH").val(datefromHH);
$("#ServiceToDateM").val(dateFromMM);
}
},
complete: function (XMLHttpRequest, textStatus) { },
error: function () { }
}); // end ajax
} else {
$("#ServiceToDate").val("");
$("#ServiceToDateTitle").val("");
$("#ServiceToDateH").val(datefromHH);
$("#ServiceToDateM").val(dateFromMM);
}
};
</script>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
원생 Ajax와 jQuery Ajax의 차이점 예시 분석선언: 이번에 소개한 것은 aax와 백그라운드를 이용하여 데이터 교환을 하는 작은 예이기 때문에 demo는 서버를 통해 열어야 합니다.서버 환경은 구축하기 매우 좋다. 인터넷에서wamp나xampp를 다운로드하여 한 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.