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

      

  • 相关阅读:
    Tars 服务调服务
    不一样的风格,C#的lambda表达式
    TCP/IP 协议图--传输层中的 TCP 和 UDP
    TCP/IP 协议图--TCP/IP 基础
    TCP/IP 协议图--计算机网络体系结构分层
    HTTP协议图--与 HTTP 协作的 Web 服务器
    HTTP协议图--HTTP 报文实体
    HTTP协议图--HTTP 响应状态码(重点分析)
    HTTP协议图--HTTP 报文首部之首部字段(重点分析)
    HTTP协议图--HTTP 报文首部之请求行、状态行
  • 原文地址:https://www.cnblogs.com/maduar/p/7999921.html
Copyright © 2011-2022 走看看