js中两个日期相减得到天时分秒

本文介绍了一个JavaScript函数,用于计算并返回两个日期之间的天数、小时数和分钟数差值。该函数通过比较毫秒级别的时间戳来实现日期计算,并考虑了不同浏览器间的兼容性问题。

/**
 * 两个时间相减
 * @param starttime
 * @param endtime
 * @returns
 */
function GetDateDiff(starttime,endtime,type)
{
  if( starttime == null || endtime == null){
  return "";
 }
 var ed = endtime;
 var sd = starttime ;
 if(type==1){
    ed = ed+":00";
 }else if(type ==2){
  sd = sd +":00";
 }
 //此处是解决浏览器兼容性问题,Firefox只能认识2015/06/05格式
    var sd2 = sd.replace(/-/g,"/");
    var ed2 = ed.replace(/-/g,"/");
 var startTime = new Date(sd2);
 var endTime = new Date(ed2); 
 var result = "";
 
 var date3=endTime.getTime()-startTime.getTime(); //时间差的毫秒数
 
 //计算出相差天数
 var days=Math.floor(date3/(24*3600*1000));
 
 result += days > 0 ? days + "天" : "0天"; 
 //计算出小时数
 var leave1=date3%(24*3600*1000);     //计算天数后剩余的毫秒数
 var hours=Math.floor(leave1/(3600*1000));
 
 result += hours > 0 ? hours + "小时" : "0小时";
 
 //计算相差分钟数
 var leave2=leave1%(3600*1000);        //计算小时数后剩余的毫秒数
 var minutes=Math.floor(leave2/(60*1000));
 
 result += minutes > 0 ? minutes + "分钟" : "0分钟";
 //计算相差秒数
// var leave3=leave2%(60*1000);          //计算分钟数后剩余的毫秒数
// var seconds=Math.round(leave3/1000);
// 
// result += seconds > 0 ? seconds + "秒" : ""; 
 
 return result == "" ? "" : result;
};

在 JavaScript 中实现两个日期相减,可以按照以下步骤进行: 1. 获取两个日期的值,可以通过 `document.getElementById` 结合 `value` 属性获取输入框中的日期字符串。 2. 将日期字符串转换为 `Date` 对象。 3. 计算两个日期对象的时间差,单位为毫秒。 4. 根据需求将时间差转换为所需的时间单位,如天、小时等。 以下是一个示例代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>日期相减</title> </head> <body> 开始日期:<input type="date" id="beginDate"> 结束日期:<input type="date" id="endDate"> <button onclick="calculateDateDifference()">计算</button> <p id="result"></p> <script> function calculateDateDifference() { // 获取开始时间和结束时间 var beginDate = document.getElementById('beginDate').value; var endDate = document.getElementById('endDate').value; // 将日期字符串转换为 Date 对象 var bDate = new Date(beginDate); var eDate = new Date(endDate); // 计算时间差,单位为毫秒 var timeDifference = eDate - bDate; // 将时间差转换为天数 var daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); // 将结果显示在页面上 document.getElementById('result').innerHTML = "日期相差 " + daysDifference + " 天。"; } </script> </body> </html> ``` 在上述代码中,用户可以在输入框中输入开始日期和结束日期,点击“计算”按钮后,会自动计算两个日期之间相差的天数并显示在页面上。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值