当前位置: 首页 > news >正文

时间处理的一些代码片段

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

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');
};

转载于:https://www.cnblogs.com/summer7310/p/6560355.html

相关文章:

  • 自动化-----saltstack基础技术
  • 排序算法(java版)
  • 初学ArcGIS API for JavaScript
  • 倒排列表求交集算法汇总
  • BZOJ 4195: [Noi2015]程序自动分析 [并查集 离散化 | 种类并查集WA]
  • UIButton的titleLabel不同状态字体判断
  • STM32 Flash Download failed
  • H5+css从入门到精通
  • xpath与css的区别
  • PHP类与对象
  • malloc函数及用法
  • SQL基础操作指令
  • IP首部格式[转载]
  • Cisco配置VLAN+DHCP中继代理+NAT转发上网
  • 让angular-cli工程基于ExpressJS服务,为对接后台API做准备
  • 「面试题」如何实现一个圣杯布局?
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • javascript数组去重/查找/插入/删除
  • Java反射-动态类加载和重新加载
  • mysql外键的使用
  • node和express搭建代理服务器(源码)
  • Selenium实战教程系列(二)---元素定位
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 大整数乘法-表格法
  • 马上搞懂 GeoJSON
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 如何优雅地使用 Sublime Text
  • 首页查询功能的一次实现过程
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (算法)Game
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (转)jQuery 基础
  • (转)关于多人操作数据的处理策略
  • ***通过什么方式***网吧
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET Core跨平台微服务学习资源
  • .NET Micro Framework初体验
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET连接MongoDB数据库实例教程
  • .Net面试题4
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?
  • .NET中winform传递参数至Url并获得返回值或文件
  • @31省区市高考时间表来了,祝考试成功
  • @AutoConfigurationPackage的使用
  • @FeignClient注解,fallback和fallbackFactory