背景:

服务项目已有服务期起止时间From-To

现在要根据用户输入的新的起始时间, 和该服务期的原有区间值, 计算出新的服务期截止时间

即 NewServiceToDateTime = NewServiceFromDateTime + ( OldServiceToDateTime - OldServiceFromDateTime)

本示例的效果:

1.日期转换 及 差值计算

2.mvc 下 ajax 调用及赋值

相关代码如下:

后台Controller下Action处理

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(, '')
,
ServiceToDateM = dtNewTo.Minute.ToString().PadLeft(, '')
}, 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>

MVC 下 ajax调用 日期差值计算的更多相关文章

  1. Hibernate中HQL的日期差值计算,可计算相差多少秒

    最近有个业务需求就是计算订单创建时间离现在超过 4 小时的订单都查找出来! 那么就需要用到日期函数了. 网上找了一下总共的日期函数有一下几个: CURRENT_DATE() 返回数据库当前日期 时间函 ...

  2. 九度OJ 1096:日期差值 (日期计算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8138 解决:2752 题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入: 有多组数据, ...

  3. 题目1096:日期差值(a-b=(a-c)-(b-c))

    http://ac.jobdu.com/problem.php?pid=1096 题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入: 有多组数据,每 ...

  4. Android 获取当前日期距离过期时间的日期差值的完整方法直接使用

    /*** * 获取当前日期距离过期时间的日期差值 * @param endTime * @return */public String dateDiff(String endTime) { Strin ...

  5. 九度oj 题目1096:日期差值

    题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天 输入: 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD 输出: 每组数据输出一行, ...

  6. asp.net mvc 使用Ajax调用Action 返回数据【转】

      使用asp.net mvc 调用Action方法很简单. 一.无参数方法. 1.首先,引入jquery-1.5.1.min.js 脚本,根据版本不同大家自行选择. <script src=& ...

  7. Mysql 2条记录 差值计算

    1 表结构 2:  其实 是2个相同的 表根据rownum= rownum-1 来计算,所以先了解单个表的查询 附上SQL: #查询出1天的数据升序 ) as rownum, info.equipme ...

  8. 关于MVC接收Ajax调用无法访问的问题

    例如:下面代码有两个int类型的参数,如果Ajax调用时没有在data属性中为其赋值,AJAX会出500异常. public JsonResult GetList(int pageIndex, int ...

  9. 关于Java中计算日期差值不准确问题

    1.字符串日期相减 如:2016-4-1,必须先将此字符串转成Date对象,并且, 格式必须为:yyyy—MM—dd  HH:mm:ss. 如果不转就直接计算(2016-4-1)两个这样的日期,则误差 ...

随机推荐

  1. Java中需要了解的点

    1.32位jvm.64位区别? 2.

  2. codeforcfes Codeforces Round #287 (Div. 2) B. Amr and Pins

    B. Amr and Pins time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  3. LightOJ - 1422 Halloween Costumes —— 区间DP

    题目链接:https://vjudge.net/problem/LightOJ-1422 1422 - Halloween Costumes    PDF (English) Statistics F ...

  4. WinDbg设置托管进程断点

    WinDbg的Live模式调试..Net 托管代码 ,使用bp,bu,bm无法设置断点,也许是我不会.研究了下,托管代码有自己的命令,!BPMD 模块名 完全限定的方法名 步骤: 1.查找进程PID, ...

  5. ASP.NET Session and Forms Authentication and Session Fixation

    https://peterwong.net/blog/asp-net-session-and-forms-authentication/ The title can be misleading, be ...

  6. 动态的添加ImageView到LinearLayout中并居中显示

    ImageView imageView = new ImageView(mActivity); imageView.setImageResource(R.mipmap.gengduo); Linear ...

  7. apt-get update 问题 及gcc高亮

    一 gcc高亮 gcc 高亮有好几种方法. 参考 http://www.cokco.cn/thread-39909-1-1.html 这个教程: (1) git clone https://githu ...

  8. 基于HALCON的模板匹配方法总结 (转)

    很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间.去年有过一段时间的集中学习,做了许多的练习和实验,并对基于HDevelop的形状匹配算法的参数优化进行了研究,写了一篇& ...

  9. 如何在cowboy应用中指定mnesia数据库路径

    创建mnesia数据库的步骤简述: 1)定义脚本: -module(mns). -export([setup/0, clean/0]). -record(user, { id, coin, diamo ...

  10. jquery实现无限滚动瀑布流实现原理

    现在类似于pinterest这类的表现效果很火,其实我比较中意的是他的布局效果,而不是那种瀑布流. 虽然我不是特别喜欢这种瀑布流的表现样式,但是还是写了几篇关于无限滚动瀑布流效果的文章,Infinit ...