首页 新闻 会员 周边

关于Js做时间的加减(年、月、日、时、分、秒)

0
悬赏园豆:15 [已解决问题] 解决于 2013-12-21 20:29

各位老师:)

  主要请教在C#后端代码已实现的判断时间的逻辑,如何在Js里重新实现过程中的问题,

  感谢大家有好的参考资料提供。谢谢

 

    1.在C#后端代码写的逻辑

    //(开始时间+爬虫持续时间)-当前时间 =>转换为分钟数  

double min=   (t.StateTime.AddMinutes(t.ProcessTime) - DateTime.Now).TotalMinutes

   2.目前JS前端的逻辑 

var StateTimeval = '2013-12-11 17:19:33';//状态时间
var ProcessTimeVal = 1;//爬虫时间 

 

GetTotalSeconds(StateTimeval, ProcessTimeVal);

//获取总分钟数 状态时间+爬虫时间 -当前时间

function GetTotalSeconds(StateTimeval, ProcessTimeVal) {

/*状态时间+爬虫时间(已实现)*/
var StateTimeDateOfFromat = new Date(StateTimeval.replace(/-/g, " / "));//要计算的时间
var StateTimeofMinute = StateTimeDateOfFromat.getMinutes();//获取分钟属性
StateTimeDateOfFromat.setMinutes(StateTimeofMinute+1); //设置分钟属性
alert(StateTimeDateOfFromat);

 

/*如何和当前时间相减,并转换为TotalMinutes(未实现)*/

 

return min;

Js C#
Frank铭的主页 Frank铭 | 初学一级 | 园豆:8
提问于:2013-12-12 20:23
< >
分享
最佳答案
2
  //startTime和endTime是18/12/2002格式   
                 var startTime = $("#<%=txtDepartureDate.ClientID %>").val();
                 var endTime = $("#<%=txtReturnDate.ClientID %>").val();
  
                 var newDate, sDate, eDate, iDays
                 //js月份默认是从0开始的所以月份要-1
                 newDate = startTime.split("/")
                 sDate = new Date(aDate[2], aDate[1]-1, aDate[0])
 
                 newDate = endTime.split("/")
                 eDate = new Date(aDate[2], aDate[1]-1, aDate[0])
                 //(1000 * 60 * 60 * 24) 得到分钟除60000就好了 
                 iDays = Math.floor((eDate2 - sDate) / 86400000)
收获园豆:8
Zery | 大侠五级 |园豆:6151 | 2013-12-12 20:44

谢谢老师:)

感谢老师的思路:

//js月份默认是从0开始的所以月份要-1 newDate = startTime.split("/

但我需要计算时分秒时,还是没有找到合适的办法...

 

 目前这个问题,我暂时用后台传递到前台的方法来做了,春节时,我想其他办法解决。

原因如下:

1.因为类似:JS计算出的时间和.net类库的时间有很大差距

我后来采用  d.getTime(),将比较的时间统一转换为时间戳

double min=   (t.StateTime.AddMinutes(t.ProcessTime) - DateTime.Now).TotalMinutes

Frank铭 | 园豆:8 (初学一级) | 2013-12-21 20:28
其他回答(1)
-1
//增加月 
    function AddMonths(date, value) {
        date.setMonth(date.getMonth() + value);
        return date;
    }
    //增加天 
    function AddDays(date, value) {
        date.setDate(date.getDate() + value);
        return date;
    }
    //增加时
    function AddHours(date, value) {
        date.setHours(date.getHours() + value);
        return date;
    }
 
收获园豆:7
junjieok | 园豆:779 (小虾三级) | 2013-12-13 08:12

谢谢老师:)

 目前这个问题,我暂时用后台传递到前台的方法来做了,春节时,我想其他办法解决。

原因如下:

1.因为类似:JS计算出的时间和.net类库的时间有很大差距

我后来采用  d.getTime(),将比较的时间统一转换为时间戳

double min=   (t.StateTime.AddMinutes(t.ProcessTime) - DateTime.Now).TotalMinutes

 

支持(0) 反对(0) Frank铭 | 园豆:8 (初学一级) | 2013-12-21 20:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册