/* 往指定时间字符串上加时间间隔,获得新的时间字符串
 * startDateStr:开始时间字符串,类似"2015-7-20 17:26:00"
 * durationNumStr:持续时间数
 * durationTypeStr:持续时间类型
 * 返回类似:2015-7-20 17:26:00
 *
 *
 */
function getEndDate(startDateStr, durationNumStr, durationTypeStr) {
 
    var startDate = new Date(startDateStr.replace("-", "/").replace("-",
            "/"));
    var duration_num = parseInt(durationNumStr);
 
    var endDate = "";
    if (durationTypeStr == "min") {
        endDate = new Date(startDate.setMinutes(startDate.getMinutes()
                + duration_num));
    }
    if (durationTypeStr == "h") {
        endDate = new Date(startDate.setHours(startDate.getHours()
                + duration_num));
    }
    if (durationTypeStr == "d") {
        endDate = new Date(startDate.setDate(startDate.getDate()
                + duration_num));
    }
    if (durationTypeStr == "w") {
        endDate = new Date(startDate.setDate(startDate.getDate()
                + duration_num * 7));
    }
    if (durationTypeStr == "m") {
        endDate = new Date(startDate.setMonth(startDate.getMonth()
                + duration_num));
    }
    if (durationTypeStr == "y") {
        endDate = new Date(startDate.setFullYear(startDate.getFullYear()
                + duration_num));
    }
 
    var year = endDate.getFullYear();
    var month = endDate.getMonth() + 1 < 10 ? "0"
            + (endDate.getMonth() + 1) : endDate.getMonth() + 1;
    var date = endDate.getDate() < 10 ? "0" + endDate.getDate() : endDate
            .getDate();
    var hour = endDate.getHours() < 10 ? "0" + endDate.getHours() : endDate
            .getHours();
    var minute = endDate.getMinutes() < 10 ? "0" + endDate.getMinutes()
            : endDate.getMinutes();
    var second = endDate.getSeconds() < 10 ? "0" + endDate.getSeconds()
            : endDate.getSeconds();
    var endDateStr = year + "-" + month + "-" + date + " " + hour + ":"
            + minute + ":" + second;
    return endDateStr;
}
 
/**
 * 计算开始时间是否小于结束时间,小于等于返回true,否则false
 * startDateStr:开始时间字符串
 * endDateStr:结束时间字符串
 * 返回:true或false
 *
 *
 */
function chkTime(startDateStr, endDateStr) {
    //计划截止时间
    var startDate = new Date(startDateStr.replace("-", "/").replace("-",
            "/"));
    //计划详细项的截止时间
    var endDate = new Date(endDateStr.replace("-", "/").replace("-", "/"));
    if (startDate <= endDate) {
        return true;
    } else {
        return false;
    }
}

 

JS日期比较大小 给定时间和持续时间计算最终时间的更多相关文章

  1. js 日期比较大小,js判断日期是否在区间内,js判断时间段是否在另外一个时间段内

    /** * 日期解析,字符串转日期 * @param dateString 可以为2017-02-16,2017/02/16,2017.02.16 * @returns {Date} 返回对应的日期对 ...

  2. C# MVC 用户登录状态判断 【C#】list 去重(转载) js 日期格式转换(转载) C#日期转换(转载) Nullable<System.DateTime>日期格式转换 (转载) Asp.Net MVC中Action跳转(转载)

    C# MVC 用户登录状态判断   来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类Authenticati ...

  3. js两个日期对比大小

     //适合格式(0000-00-00) //日期比较 function dateCompare(startdata, enddata) { var arr = startdata.split(&quo ...

  4. js 日期计算星座 根据生日的月份和日期,一行代码计算星座的js小函数(转)

    本博客根据 开源中国作者清风徐不来 的文章 根据生日的月份和日期,一行代码计算星座的js小函数(转) 原文出自CSDN 无心的专栏 的文章,知识产权归原文作者所有! 点击查看原文:js 日期计算星座

  5. js 比较两个日期的大小的例子

    例子,直接比较大小即可 代码如下 复制代码 <script>var st="2009-10-20 14:38:40"var et="2009-10-20 15 ...

  6. js日期date对象

    js日期 日期对象的一些属性和方法 var date = new Date() date.toString() // "Tue Jan 29 2019 22:58:13 GMT+0800 ( ...

  7. JS获取当前日期时间及JS日期格式化

    Js获取当前日期时间: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份( ...

  8. JS 日期对象在浏览器间的若干差异

    JS中 ,通过 new Date() 可以获取当前时间 也可以通过 new Date("2013/12/12 8:00:00")的方式,创建某个指定时间对象 在Chrome和FF下 ...

  9. js日期相关函数总结分享

    一个倒计时程序,因为经常要在手机端访问,所以没有引用jquery,对于用习惯jquery的我还真不习惯. 下面简单说明js日期相关函数,并说明实现倒计时的原理 var dateTo=new Date( ...

随机推荐

  1. 消息队列系列(二):.Rabbitmq的使用及Web监控工具使用

    一.文档资料        1.官方网站:http://www.rabbitmq.com/        2.安装教程:http://www.rabbitmq.com/install-windows. ...

  2. SpringMVC中数据转换

    SpringMVC中接收到的数据都是String形式,然后再根据反射机制将String转换成对应的类型.如果此时想接收一个Date类型,那么我们可以定义一个转换器来完成. 例如,我们有下面的Emp类: ...

  3. 【转】HttpServletRequestWrapper 实现xss注入

    这里说下最近项目中我们的解决方案,主要用到commons-lang3-3.1.jar这个包的org.apache.commons.lang3.StringEscapeUtils.escapeHtml4 ...

  4. ActiveMQ 报错 Temporary Store limit is 51200 mb

    ERROR | Temporary Store limit is 51200 mb, whilst the temporary data directory: D:\tool\apache-actil ...

  5. POJ3278(KB1-C 简单搜索)

    Catch That Cow Description Farmer John has been informed of the location of a fugitive cow and wants ...

  6. 微信开发e.target.dataset取值undefined

    替换为: e.currentTarget.dataset.current

  7. 自己编写jQuery插件 之 无缝滚动

    一. 效果图 二. Html骨架结构 <div class="box"> <ul> <li>1</li> <li>2&l ...

  8. opencv3.2.0图像离散傅里叶变换

    源码: ##名称:离散傅里叶变换 ##平台:QT5.7.1+opencv3.2.0 ##日期:2017年12月13. /**** 新建QT控制台程序****/ #include <QCoreAp ...

  9. 180328_gVim设置tab为4个空格

    找到gVim安装目录 C:\Program Files (x86)\Vim\ 更改目录下的 _vimrc 文件,这是一个只读文件,需要管理员权限进行修改和保存. 在文件末尾添加下列内容: set ts ...

  10. 八、Web移动端Fixed布局的解决方案

    移动端业务开发,iOS 下经常会有 fixed 元素和输入框(input 元素)同时存在的情况. 但是 fixed 元素在有软键盘唤起的情况下,会出现许多莫名其妙的问题. 这篇文章里就提供一个简单的有 ...