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

时间:2023-03-09 13:05:32
关于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;
}

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