关于js中的时间——计算时间差等

获取当前(系统)时间:

var NowDate= new Date(); 
// 获取当前日期时间
// 输出为: Wed May 03 2017 14:52:08 GMT+0800 (中国标准时间)

NowDate.toLocaleString( );
// 获取当前日期时间
// 输出为:yyyy-MM-dd hh:mm:ss

NowDate.toLocaleTimeString();
// 获取当前时间
// 输出为:hh:mm:ss

NowDate.toLocaleDateString();
// 获取当前日期
// 输出为:yyyy-MM-dd

NowData.getFullYear();    // 获取当前年(yyyy  1970~????)
NowData.getMonth();      // 获取当前月 (0~11月,0表示1月)
NowData.getDate();        // 获取当前日 (1~31)
NowData.getDay();         // 获取当前星期 (0~6  0表示周天)
NowData.getTime();       //  获取毫秒数 (从1970年1月1日 到现在的毫秒数)
NowData.getHours();     // 获取小时数 (0~23  0表示24点)
NowData.getMinutes();  // 获取分钟数 (0~59)
NowData.getSeconds(); // 获取秒数 (0~59)
NowData.getMilliseconds();  // 获取当前毫秒数(0~999)

字符串转date类型

/**
    ** 字符串类型转date类型
    ** 参数: str  待转字符串(yyyy-MM-dd hh:mm:ss)
    ** 返回: date类型时间对象
*/
function stringToDate(str){
    var tempStrs = str.split(" ");  //截取时间
    // 解析日期部分
    var dateStrs = tempStrs[0].split("-");
    var year = parseInt(dateStrs[0], 10);
    var month = parseInt(dateStrs[1], 10) - 1;
    var day = parseInt(dateStrs[2], 10);
    // 解析时间部分
    var timeStrs = tempStrs[1].split(":");
    var hour = parseInt(timeStrs [0], 10);
    var minute = parseInt(timeStrs[1], 10);
    var second = parseInt(timeStrs[2], 10);
    var date = new Date(year, month, day, hour, minute, second);
    return date;
}

计算距离当前时间的时间差

function getDtime(Timestr){
    var rDate = {};
    var tempStrs = Timestr.split(" ");  //截取时间
    var dateStrs = tempStrs[0].split("-");  // 解析日期部分
    var timeStrs = tempStrs[1].split(":");  // 解析时间部分
    // 获得目标时间对象
    var finallyDate = new Date(parseInt(dateStrs[0], 10), 
                                (parseInt(dateStrs[1], 10) - 1), 
                                parseInt(dateStrs[2], 10), 
                                parseInt(timeStrs [0], 10), 
                                parseInt(timeStrs[1], 10), 
                                parseInt(timeStrs[2], 10));
    var NowDate = new Date();   // 获取当前时间
    var Dtime = finallyDate - NowDate;  // 计算时间差
    // 填充时间差对象
    rDate.days=Math.floor(Dtime/(24*3600*1000));
    var leave1=Dtime%(24*3600*1000);
    rDate.hours=Math.floor(leave1/(3600*1000));
    var leave2=leave1%(3600*1000);
    rDate.minutes=Math.floor(leave2/(60*1000));
    var leave3=leave2%(60*1000);
    rDate.seconds=Math.round(leave3/1000);
    return rDate;
}

欢迎提意见,有更好的封装请留言。

原文地址:https://www.cnblogs.com/MirageFox/p/6802657.html