zoukankan      html  css  js  c++  java
  • 时间处理的一些代码片段

    项目开发中会用到一些有关时间的上的处理,比如根据某个时间返回该时间的前后一段时间,判断两个时间点的相隔时间等。

    1、获取某个时间点的前后一段时间

    根据某个时间点获取前后多少年、月、日、时、分、秒函数

    /**
     * [根据某个时间点获取前后多少年、月、日、时、分、秒]
     * @param  {[type]} dateNow  [需要获取的时间点]
     * @param  {[type]} stepData [具体时间段区间]
     * @param  {[type]} flag [标志位,用来区分年、月、日、时、分、秒]
     * @return {[type]}  [返回新的时间]
     */
    var getTimes = function(dateNow, stepData, flag){
    	var date = dateNow.split(' ')[0].split('-'),
    		time = dateNow.split(' ')[1].split(':'),		
    		year = date[0],
    		month = date[1]-1,
    		day = date[2],
    		second = time[2],
    		minute = time[1],
    		hour = time[0];		
    	var dateNew = new Date(year, month, day, hour, minute, second, 00);
    
    	switch(flag) {
    		case "year": stepData && (dateNew.setFullYear(dateNew.getFullYear() + stepData));
    			break;
    		case "month": stepData && (dateNew.setMonth(dateNew.getMonth()+1 + stepData));
    			break;
    		case "date": stepData && (dateNew.setDate(dateNew.getDate() + stepData));
    			break;
    		case "hour": stepData && (dateNew.setHours(dateNew.getHours() + stepData));
    			break;
    		case "minute": stepData && (dateNew.setMinutes(dateNew.getMinutes() + stepData));
    			break;
    		case "second": stepData && (dateNew.setMilliseconds(dateNew.getSeconds() + stepData));
    			break;
    		default: stepData && (dateNew = new Date(dateNew.getTime() + stepData));
    			break;
    	} 
    	var t = {
    		Y:dateNew.getFullYear(),
    		m:dateNew.getMonth()+1,
    		d:dateNew.getDate(),
    		h:dateNew.getHours(),
    		M:dateNew.getMinutes(),
    		s:dateNew.getSeconds()
    	 }
    	 function offset(num){//个位前补0
    		return (num < 10 ? ('0'+num):num);
    	 }
    	 return t.Y+'-'+offset(t.m)+'-'+offset(t.d)+" "+offset(t.h)+":"+add0(t.M)+":"+offset(t.s);
    }
    

    2、计算两个时间的时间间隔

    var startTime = $("#startTime").val();//开始时间
    var endTime = $("#endTime").val();//结束时间
    var subTime = (toDate(endTime).getTime()-toDate(startTime).getTime())/1000/3600/24;
    function toDate(strDateTime) {
    	var strDateTimes = strDateTime.split(' '),
    		strDate = strDateTimes[0].split('-'),
    		year = Number(strDate[0]),
    		month = Number(strDate[1]) - 1,
    		day = Number(strDate[2]),
    		strTime = strDateTimes[1].split(':'),
    		hour = Number(strTime[0]),
    		minute = Number(strTime[1]),
    		secend = Number(strTime[2]);
    	return new Date(year, month, day, hour, minute, secend);
    }
    

    3、时间控件赋值

    function getTime(isEndTime){
    	 var date = new Date();
    	 var t = {
    		m:date.getMonth()+1,
    		d:date.getDate(),
    		h:date.getHours(),
    		M:date.getMinutes(),
    		s:date.getSeconds()
    	 }
    	 function offset(num){//个位前补0
    		return (num < 10 ? ('0'+num):num);
    	 }
    	 return date.getFullYear() + '-' + offset(t.m) +'-'+ offset(t.d) 
    		+ ' ' + (isEndTime ? '23:59:59':'00:00:00');
    };
  • 相关阅读:
    HTML5中的audio在手机端和 微信端的自动播放
    vue框架
    购物车原理
    angular前端框架
    -webkit-line-clamp超过两行就出现省略号
    jQuery事件委托
    淘宝橱窗
    选字游戏
    大众点评订单分库分表实践
    业界难题-“跨库分页”的四种方案
  • 原文地址:https://www.cnblogs.com/summer7310/p/6560355.html
Copyright © 2011-2022 走看看