123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- //日期转时间戳
- function getUnixTime(dateStr){
- var newstr = dateStr.replace(/-/g,'/');
- var date = new Date(newstr);
- var time_str = date.getTime().toString();
- return time_str.substr(0, 10);
- }
- //时间戳转日期,falg:true表示只要年月日,part: year month date
- function toDate(number,flag,part) {
- var n = number;
- var date = new Date(parseInt(n) * 1000);
- var y = date.getFullYear();
- var m = date.getMonth() + 1;
- m = m < 10 ? ('0' + m) : m;
- var d = date.getDate();
- d = d < 10 ? ('0' + d) : d;
- var h = date.getHours();
- h = h < 10 ? ('0' + h) : h;
- var minute = date.getMinutes();
- var second = date.getSeconds();
- minute = minute < 10 ? ('0' + minute) : minute;
- second = second < 10 ? ('0' + second) : second;
- if(flag){
- if(part == "year"){
- return y;
- }else if(part == "month"){
- return m;
- }else if(part == "date"){
- return n;
- }
- return y + '-' + m + '-' + d;
- }
- return y + '-' + m + '-' + d + ' ' + h + ':' + minute+':' + second;
- }
- //判断两个日期时间戳相差多少天,参数为时间戳
- function dateCompare(dateTimeStamp1,dateTimeStamp2){
- var dayNum = 0;
- if(dateTimeStamp1 > dateTimeStamp2){
- dayNum = Math.floor((dateTimeStamp1 - dateTimeStamp2) / 86400);
- }else{
- dayNum = Math.floor((dateTimeStamp2 - dateTimeStamp1) / 86400);
- }
- return dayNum;
- }
- //判断过去某个时间点到当前时间是否达到多少天,可以用来定期清理缓存
- function datePassDays(dateTimeStamp,days){
- var now = getUnixTime(formatDateThis(new Date()));
- var diffValue = now - dateTimeStamp;
- var limitTime = days * 86400;
- if(diffValue >= limitTime){
- return true;
- }
- return false;
- }
- //当前日期加减天数,falg:true表示只要年月日
- function mathChangeDate(date,method,days,flag){
- //method:'+' || '-'
- //ios不解析带'-'的日期格式,要转成'/',不然Nan,切记
- var dateVal = date.replace(/-/g, '/');
- var timestamp = Date.parse(dateVal);
- if(method == '+'){
- timestamp = timestamp / 1000 + 24 * 60 * 60 * days;
- } else if (method == '-'){
- timestamp = timestamp / 1000 - 24 * 60 * 60 * days;
- }
- return toDate(timestamp,flag);
- }
- //时间戳转换具体时间描述(传入数值型时间戳)
- function getDateDiff(dateTimeStamp) {
- var result = '';
- var minute = 1 * 60;
- var hour = minute * 60;
- var day = hour * 24;
- var halfamonth = day * 15;
- var month = day * 30;
- var now = getUnixTime(formatDateThis(new Date()));//有些特殊 不能使用 new Date()
- var diffValue = now - dateTimeStamp;
- if (diffValue < 0) { return; }
- var monthC = diffValue / month;
- var weekC = diffValue / (7 * day);
- var dayC = diffValue / day;
- var hourC = diffValue / hour;
- var minC = diffValue / minute;
-
- if (monthC >= 1) {
- result = "" + parseInt(monthC) + "月前";
- }
- else if (weekC >= 1) {
- result = "" + parseInt(weekC) + "周前";
- }
- else if (dayC >= 1) {
- result = "" + parseInt(dayC) + "天前";
- }
- else if (hourC >= 1) {
- result = "" + parseInt(hourC) + "小时前";
- }
- else if (minC >= 1) {
- result = "" + parseInt(minC) + "分钟前";
- } else
- result = "刚刚";
- return result;
- };
- //获取当前年份,月份, 例: getCurrentTime("year")
- const getCurrentTime = (method,date=new Date()) => {
- if(method == "year"){
- return date.getFullYear();
- }else if(method == "month"){
- return date.getMonth() + 1;
- }
- return date;
- }
- //获取当前服务器时间,参数直接用 new Date() 就可以了
- const formatDateThis = (date,lab='-') => {
- const year = date.getFullYear();
- const month = date.getMonth() + 1;
- const day = date.getDate();
- const hour = date.getHours();
- const minute = date.getMinutes();
- const second = date.getSeconds();
- return [year, month, day].map(formatNumber).join(lab) +' '+ [hour, minute, second].map(formatNumber).join(':');
- }
- const formatTime = (date,lab='-') => {
- const year = date.getFullYear();
- const month = date.getMonth() + 1;
- const day = date.getDate();
- return [year, month, day].map(formatNumber).join(lab);
- }
- const formatTimes = time => {
- const hour = time.getHours();
- const minute = time.getMinutes();
- const second = time.getSeconds();
- return [hour, minute,second].map(formatNumber).join(':');
- }
- //补0
- const formatNumber = n => {
- n = n.toString();
- return n[1] ? n : '0' + n;
- }
- //比较两个时间大小(格式参考yyyy-mm-dd hh:mm:ss)
- function compareTime(startTime,endTime){
- //结束时间大于开始时间就是true , 反之则为 false
- var sn = getUnixTime(startTime) * 1;
- var en = getUnixTime(endTime) * 1;
- if(en > sn){
- return true;
- }
- return false;
- }
- module.exports = {
- dateCompare:dateCompare,
- getCurrentTime:getCurrentTime,
- getUnixTime:getUnixTime,
- formatDateThis:formatDateThis,
- formatTime: formatTime,
- formatTimes: formatTimes,
- toDate: toDate,
- getDateDiff: getDateDiff,
- mathChangeDate: mathChangeDate,
- compareTime: compareTime,
- datePassDays:datePassDays
- }
|