• javascript实现PHP的strtotime,time,date函数


    习惯了用PHP strtotime(),time(),date()的函数,发现JS的日期操作起来好麻烦,于是自己写了一个这三个函数的JS实现。

    /**
     * 模仿PHP的strtotime()函数
     * strtotime('2012-07-27 12:43:43') OR strtotime('2012-07-27')
     * @return 时间戳
     */
    function strtotime(str){
        var _arr = str.split(' ');
        var _day = _arr[0].split('-');
        _arr[1] = (_arr[1] == null) ? '0:0:0' :_arr[1];
        var _time = _arr[1].split(':');
        for (var i = _day.length - 1; i >= 0; i--) {
            _day[i] = isNaN(parseInt(_day[i])) ? 0 :parseInt(_day[i]);
        };
        for (var i = _time.length - 1; i >= 0; i--) {
            _time[i] = isNaN(parseInt(_time[i])) ? 0 :parseInt(_time[i]);
        };
        var _temp = new Date(_day[0],_day[1]-1,_day[2],_time[0],_time[1],_time[2]);
        return _temp.getTime() / 1000;
    }
    /**
     * 模仿PHP的time()函数
     * @return 返回当前时间戳
     */
    function time(){
        return (new Date()).getTime() / 1000;
    }
    /**
     * 模仿PHP的date()函数
     * strtotime('Y-m-d H:i:s');
     * @param format 只支持 'Y-m-d H:i:s','Y-m-d','H:i:s' 三种调用方式
     * @param time 为空时,取当前时间
     * @return 日期格式化的字符串
     */
    function date(format,time){
        var _temp = (time != null) ? new Date(time*1000) : new Date();
        var _return = '';
    
        if(/Y-m-d/.test(format)){
            var _day = [_temp.getFullYear(),addzero(1 + _temp.getMonth()),addzero(_temp.getDate())];
            _return = _day.join('-');
        }
        if(/H:i:s/.test(format)){
            var _time = [addzero(_temp.getHours()),addzero(_temp.getMinutes()),addzero(_temp.getSeconds())];
            _return += ' ' +_time.join(':');
        }
        return _return;
        function addzero(i){
            if(i<=9){
                return '0' + i;
            }else{
                return i;
            }
        }
    }
    
    //alert(date('Y-m-d H:i:s'));
    //alert(date('Y-m-d'));
    
    var str = '2012-01-06';
    alert(str);
    alert(date('Y-m-d H:i:s',strtotime(str)));
  • 相关阅读:
    Callable和Future 多线程
    【spring-boot】spring-boot 整合 ehcache 实现缓存机制
    java 设计模式http://www.runoob.com/design-pattern/design-pattern-tutorial.html
    DDD领域驱动设计(例子)
    js要怎么接收后端传的excel文件流?
    构建最小JDK Docker镜像 或者直接使用镜像:frolvlad/alpine-oraclejre8:slim
    JVM知识点总结
    DDD随笔-Axon
    HttpServletRequest  通用的post 请求
    List转数组
  • 原文地址:https://www.cnblogs.com/caiyujiang/p/2611707.html
Copyright © 2020-2023  润新知