背景:

服务项目已有服务期起止时间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. CSS3 (二)

    translate() 方法 通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数: 示例: div { transform: ...

  2. JS中的存储机制

    一.堆和栈的介绍 1.堆和队,是先进先出:栈,是先进后出,就跟水桶差不多: 2.存储速度:堆和队的存储速度较慢,栈的存储速度较快,会自动释放: 二.js中存储的类型 1.堆,一般用于复杂数据类型,存储 ...

  3. Android中android:visibility的3中属性的剖析

    在Android中控件或者布局的可见性android:visibility有3中情况,他们分别是: View.VISIBLE,View.UNVISIBLE,View.GONE View.VISIBLE ...

  4. TCP连接、释放及HTTPS连接流程

    一.建立连接是三次握手 为什么三次握手?前两次握手为了确认服务端能正常收到客户端的请求并愿意应答,后两次握手是为了确认客户端能正常收到服务端的请求并愿意应答.三次握手可以避免意外建立错误连接而导致浪费 ...

  5. Codeforces Round #419 (Div. 1) 补题 CF 815 A-E

    A-C传送门 D Karen and Cards 技巧性很强的一道二分优化题 题意很简单 给定n个三元组,和三个维度的上限,问存在多少三元组,使得对于给定的n个三元组中的每一个,必有两个维度严格小于. ...

  6. JAVA GUI THREAD---***

    针对用户界面的多线程 GUI下面的多线程方式 1.与GUI类分离方式 分离方式,在创建线程类实例时需要代入GUI句柄,通过GUI句柄操作GUI,也就是说线程类和GUI类都要有对方的实例,以便相互操作. ...

  7. Java中断机制

    1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时……都需要通过一个线程去取消另一个线程正在执行的任务.Java没有提供一种安全直接的方法 ...

  8. 6-7 adaboost分类器1

    如何利用特征来区分目标,进行阈值判决.adaboost分类器它的优点在于前一个基本分类器分出的样本,在下一个分类器中会得到加强.加强后全体的样本那么再次进行整个训练.加强后的全体样本再次被用来训练下一 ...

  9. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 12. Views 下

    ASP.NET Core MVC 13. 安装前端库 Partial VIew 就是部分View,他没有自己的数据,数据来自图中白色的那块,它的数据需要传进去,第一个参数是View的名称,第二个参数就 ...

  10. UVa 1643 Angle and Squares (计算几何)

    题意:有n个正方形和一个角(均在第一象限中),使这些正方形与这个角构成封闭的阴影区域,求阴影区域面积的最大值. 析:很容易知道只有所有的正方形的对角形在一条直线时,是最大的,然后根据数学关系,就容易得 ...