zoukankan      html  css  js  c++  java
  • js日期比较

    var assert = require('assert');
    describe('mocha', function() {
        describe('#indexOf()', function() {
            it('mocha test', function() {
    
                var EQUAL = '0',
                    RIGHT = '1',
                    SUCCESS = 'OK',
                    ERROR = 'ERROR';
    
                // 日期相等
                var result1 = comparisonDate('2017-11-11', '2017-11-11');
                assert.equal(result1.state, SUCCESS);
                assert.equal(result1.content, EQUAL);
    
                // 开始日期小于结束日期
                var result2 = comparisonDate('2017-11-11', '2017-11-12');
                assert.equal(result1.state, SUCCESS);
                assert.equal(result1.content, RIGHT);
    
                // 开始日期大于结束日期
                var result3 = comparisonDate('2017-11-12', '2017-11-11');
                assert.equal(result1.state, ERROR);
    
                // 开始日期出错
                var result4 = comparisonDate('2017-11-1', '2017-11-11');
                assert.equal(result1.state, ERROR);
    
                // 结束日期出错
                var result5 = comparisonDate('2017-11-1', '3017-11-11');
                assert.equal(result1.state, ERROR);
    
            });
        });
    });
    
    function comparisonDate( begin_date, end_date  ) {
        const EQUAL = 0,
            RIGHT = 1,
            SUCCESS = 'OK',
            ERROR = 'ERROR',
            dateReg = /^[2]d{3}-[01]d-[0123]d$/;
    
        const data = {
            state: ERROR,
            msg: '',
            content: '日期出错'
        }
    
        if ( typeof begin_date !== 'string' || begin_date === '' || !dateReg.test( begin_date ) ) {
            data.msg = '参数begin_date出错';
            return data;
        }
    
        if ( typeof end_date !== 'string' || end_date  === '' || !dateReg.test( end_date ) ) {
            data.msg = '参数end_date出错';
            return data;
        }
    
        try {
            const beginTimestamp = new Date(begin_date).getTime();
            const endTimestamp = new Date(end_date).getTime();
    
            // 开始日期小于结束日期
            if ( beginTimestamp > endTimestamp ) {
                data.msg = '开始时间大于结束时间';
                return data;
            }
    
            // 开始日期等于结束日期
            if ( beginTimestamp ===  endTimestamp ) {
                data.state = SUCCESS;
                data.content = EQUAL.toString();
                return data;
            }
    
            data.state = SUCCESS;
            data.content = RIGHT.toString();
            return data;
    
        } catch ( err ) {
            return data;
        }
    }
    

      

  • 相关阅读:
    angular2 + bootstrap +jquery 实例
    How to create a angular2 project process
    icheck 插件
    select2 下面的搜索框 无法输入问题
    datatabels buttons
    datatables 跳转到指定页
    text-overflow:ellipse;
    box-shadow
    CSS强制性换行
    mybatis与hibernate的不同
  • 原文地址:https://www.cnblogs.com/maduar/p/7999921.html
Copyright © 2011-2022 走看看