交流群:462197261站长百科站长论坛热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
点击这里给我发消息
  • 当前位置:
  • JS实现处理时间,年月日,星期的公共方法示例

    本文实例讲述了JS实现处理时间,年月日,星期的公共方法。分享给大家供大家参考,具体如下:

    在项目中用到的,用js 来得到年月日,星期,当前多少个周的函数,备忘在这里,以后参考。

    Date.prototype.getWeek = function(){
      var firstDayOfYear = new Date(this.getFullYear(),0,1);
      var millOfDay = 24*60*60*1000;
      return Math.ceil((((this - firstDayOfYear) / millOfDay) + firstDayOfYear.getDay()+1)/7);
    };
    /*
    01 October 2013-10:20:20
    01 November 2013-10:20:20
    01 December 2013-10:20:20
    08 October 2013-01:55 pm
    */
    var monthMapping = {
      "January" : "01",
      "February" : "02",
      "March" : "03",
      "April" : "04",
      "May" : "05",
      "June" : "06",
      "July" : "07",
      "August" : "08",
      "September" : "09",
      "October" : "10",
      "November" : "11",
      "December" : "12"
    };
    function formatAmPm() {
      var dateTimeStr = arguments[0] ;  
      var dateStr = dateTimeStr.split("-");
      if (lang.currentLang == "zh_CN" || lang.currentLang == "zh_TW"){
        var s_year = lang.getMessage('yearCn') ;
        var s_month = lang.getMessage('monthCn') ;
        var s_day = lang.getMessage('dayCn') ;
        var dateArray = dateStr[0].split(" ") ;
        var s_time = dateStr[1].split(" ")[1] == "am" ? lang.getMessage('amCn') :lang.getMessage('pmCn') ;
        var ret = dateArray[2] + s_year + monthMapping[dateArray[1]] + s_month + dateArray[0] + s_day + " " + s_time + dateStr[1].split(" ")[0] ; 
        if ( arguments.length > 1 ){
          /*admin feature ,so using en date*/
          ret = arguments[1] ? dateStr[0] : dateStr[1] ;
        }
        return ret ;
      }  
      else{
        if ( arguments.length > 1 ){
          return arguments[1] ? dateStr[0] : dateStr[1] ;      
        }
        else{
          return dateStr[0] + " " + dateStr[1] ;
        }
      }  
    }
    function formatDate(dateTime, pattern) {
      if(pattern == "" || pattern == null) {
        pattern = "/";
      }
      var date = new Date(dateTime);
      var year = date.getFullYear();
      var month = date.getMonth()+1;
      month = month <10 ? '0'+month : month;
      var day = date.getDate();
      day = day <10 ? '0'+day : day;
      return month + pattern + day + pattern + year;
    }
    function formatDateDDMMYYYY(dateTime) {
      var ymd = dateTime.split(" ")[0];
      var dateArray = ymd.split("-");
      return dateArray[2]+"."+dateArray[1]+"."+dateArray[0];
    }
    /**
    * 
    * @param dateTime YYYY-MM-DD hh:mm:ss
    */
    function formatDateDDMMYY(dateTime){
      var ymd = dateTime.split(" ")[0];
      var dateArray = ymd.split("-");
      return dateArray[2]+"."+dateArray[1]+"."+dateArray[0].substring(2);
    }
    /**********************calculate date*****************************/
    var MONTH = [
           {key:"Jan.",value:1},
           {key:"Feb.",value:2},
           {key:"Mar.",value:3},
           {key:"Apr.",value:4},
           {key:"May.",value:5},
           {key:"Jun.",value:6},
           {key:"Jul.",value:7},
           {key:"Aug.",value:8},
           {key:"Sept.",value:9},
           {key:"Oct.",value:10},
           {key:"Nov.",value:11},
           {key:"Dec.",value:12}          
           ];
    var DAYS = [31,28,31,30,31,30,31,31,30,31,30,31];
    function getYears(){
      var years = [];
      var date = new Date();
      var year = date.getFullYear();
      var minYear = year - 10;  
      for(var currentYear=minYear;currentYear <= year;currentYear++){
        years.push(currentYear);
      }
      return years;
    };
    function fillinMonthOptions(id,currentMonth){
      $("#" + id).get(0).options.length = 0;
      for(var i= 0;i<MONTH.length; i++){
        if (MONTH[i].value == currentMonth){
          $("#" + id).append("<option value="+MONTH[i].value+" selected=\"selected\">"+MONTH[i].key+"</option>");
        }
        else{
          $("#" + id).append("<option value="+MONTH[i].value+">"+MONTH[i].key+"</option>");
        }
      }
    };
    function fillinAllMonthOptions(monthIds,currentMonth){
      //var monthIds = ["loginMonth_1","loginMonth_2","auditMonth_1","auditMonth_2"];
      for (var i=0;i<monthIds.length;i++){
        fillinMonthOptions(monthIds[i],currentMonth);
      };  
    };
    function fillinYearOptions(id,years,currentYear){
      $("#" + id).get(0).options.length = 0;
      for(var i= 0;i<years.length; i++){
        if (years[i] == currentYear){
          $("#" + id).append("<option value="+years[i]+" selected=\"selected\">"+years[i]+"</option>");
        }
        else{
          $("#" + id).append("<option value="+years[i]+">"+years[i]+"</option>");
        }
      }
    };
    function fillinAllYearOptions(yearIds,currentYear){
      //var yearIds = ["loginYear","auditYear"];
      years = getYears();
      for(var i= 0;i<yearIds.length; i++){
        fillinYearOptions(yearIds[i],years,currentYear);
      }
    };
    function isLeapYear(year){
      return (year % 4 === 0) && (year % 100 !==0) || (year % 400 === 0);
    }
    /*get days of a month*/
    function getMonthDays(year,month){
      var monthDays = DAYS[month-1];
      if (isLeapYear(year) && month == 2){
        monthDays = 29;
      }
      return monthDays;
    }
    function fillinDay(id,monthDays){
      $("#" + id).get(0).options.length = 0;
      for(var i=1;i<=monthDays;i++){
        $("#" + id).append("<option value="+i+">"+i+"</option>");
      }
    }
    function fiilinDays(year,month,dayIds){
      var monthDays = getMonthDays(year,month);
      for(var i=0;i<dayIds.length;i++){
        fillinDay(dayIds[i],monthDays);
      }
    }
    function getWeeksOfYear(year){
      var firstDayOfYear = new Date(year,0,1);
      var days = firstDayOfYear.getDay() + (isLeapYear(year) ? 366 : 365);
      return Math.ceil(days/7);
    }
    function getCurrentWeekNo(){
      var currentDate = new Date();
      var firstDay = new Date(currentDate.getFullYear(),0,1);
      var dayms = 24 * 60 * 60 * 1000;
      var numday = ((currentDate - firstDay) / dayms );
      var weeks = Math.ceil((numday + firstDay.getDay() + 1) / 7);
      return weeks;
    }
    function getWeekRangeOfWeek(year,weekNo){
      var tmpDate = new Date("1/20/" + year);
      var numOfDaysPastSinceLastMonday = tmpDate.getDay()-1;
      tmpDate.setDate(tmpDate.getDate() - numOfDaysPastSinceLastMonday);
      var weekNoToday = tmpDate.getWeek();
      var weeksInFuture = weekNo - weekNoToday;
      tmpDate.setDate(tmpDate.getDate() + (7 * weeksInFuture) );
      var rangeFrom = tmpDate.getDate() + "/" + MONTH[tmpDate.getMonth()].key;
      tmpDate.setDate(tmpDate.getDate() + 6);
      var rangeTo = tmpDate.getDate() + "/" + MONTH[tmpDate.getMonth()].key ;
      return weekNo + "_#_" + rangeFrom + "_#_" + rangeTo ;
    }
    function fillinWeek(weekId,year){
      $("#" + weekId).get(0).options.length = 0;
      var weeksOfYear = getWeeksOfYear(year);
      var weeks = [];
      for(var i=0;i<weeksOfYear;i++){
        weeks.push(getWeekRangeOfWeek(year,i+1));
      }
      for(var j=0;j<weeks.length;j++){
        var week = weeks[j].split("_#_");
        $("#" + weekId).append("<option value="+week[0]+">"+week[0] + "(" + week[1]+"-"+week[2]+")</option>");
      }
    }
    function fillinWeeks(year,weekIds){
      for (var i=0;i<weekIds.length;i++){
        fillinWeek(weekIds[i],year);
      }
    }
    
    

    PS:这里再为大家推荐几款比较实用的天数计算在线工具供大家使用:

    在线日期/天数计算器:
    http://tools.kunjuke.com/jisuanqi/date_jisuanqi

    在线日期计算器/相差天数计算器:
    http://tools.kunjuke.com/jisuanqi/datecalc

    在线日期天数差计算器:
    http://tools.kunjuke.com/jisuanqi/onlinedatejsq

    在线天数计算器:
    http://tools.kunjuke.com/jisuanqi/datejsq

    更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript时间与日期操作技巧总结》、《JavaScript+HTML5特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript数学运算用法总结》

    希望本文所述对大家JavaScript程序设计有所帮助。

    您可能感兴趣的文章:

    • JavaScript时间操作之年月日星期级联操作
    • JavaScript显示当然日期和时间即年月日星期和时间
    • js获取时间精确到秒(年月日)
    • 时间戳转换为时间 年月日时间的JS函数
    • json格式的时间显示为正常年月日的方法
    • 用js实现每隔一秒刷新时间的实例(含年月日时分秒)
    • js获取当前年月日-YYYYmmDD格式的实现代码
    • javascript实现日历控件(年月日关闭按钮)
    • 纯JS实现出生日期[年月日]下拉菜单效果
    • js显示当前日期时间和星期几
    • JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
    • js获取指定日期周数以及星期几的小例子

    广而告之:
    热门推荐:
    jQuery实现键盘回车搜索功能

    本来我一直认为一个搜索没有什么太难做的,直到我接到了上一个项目,让不使用按钮实现搜索这才让我开始在网上寻找这一技术,那么废话少说,将我的源码放上来给大家参考。 前台代码 <div class="fl search-box"> <button type="button" name="btnSubmit" id="bt···

    node.js利用mongoose获取mongodb数据的格式化问题详解

    说明 大家都知道在mongodb 中获取数据,不管使用回调函数还是Promise又或者generate 语法最后得到都是mongoose.Query对象,不能直接操作如同普通对象一样得到单行数据。还有就是时间格式化问题,见下面。 下面示例默认使用co 和 es6 */yield 语法,当然也可以使用async/await ···

    IE6下js通过css隐藏select的一个bug

    今天遇到一个问题, 当隐藏表格行 Tr 时  $id("tr_" + id + "_1").style.setAttribute('cssText',"display:none;");, 表格行 Tr 里面的 select 在 IE6 中隐藏不了,还是会显示在页面当中。想单独设置 select 的样式为隐藏 $id("new_attpm_id2_" + id).style.setAttribu···

    在Vue项目中取消ESLint代码检测的步骤讲解

    在Vue项目中编写代码的时候经常会碰到这种烦人的无故报错,其实这是ESLint代码,如图下: 解决办法: File>Settings>ESLint>取消检测即可(将Enable选项去勾选)>apply,如下图: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一···

    MYSQL出现" Client does not support authentication "的解决方法

    MYSQL 帮助: A.2.3 Client does not support authentication protocol MySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older clients. If you upgrade the server to 4.1, attempts ···

    js 点击a标签 获取a的自定义属性方法

    今天项目上遇到一个问题,需要在点击a标签时,将完整的内容显示出来 原先是想用jquery的click方法 <a ownattr=“……” onClick="showDetail(this)">哈哈</a> 在jquery的click方法中将this的ownattr属性赋值给完整内容的div标签 然而这却一直行不通 一阵研究后发现,原···

    codeigniter中实现一次性加载多个view的方法

    本文实例讲述了codeigniter中实现一次性加载多个view的方法。分享给大家供大家参考。具体如下: function somecontrollerfunction() { $data['pagetitle'] = "Welcome to kunjuke.com"; $this->load->view('pageheader', $data); $this->load->view('pagenav'); $···

    javascript嵌套函数和在函数内调用外部函数的区别分析

    我们都知道在函数中定义的局部变量在声明他的函数体以及其嵌套的函数内始终是有定义的,并且在函数的作用域链上始终会有个对象指向全局对象,使函数能够访问到全局变量。 var ga = 'global'; var func = function() { var la = 'local'; return function() { return fu···

    js实现简易聊天对话框

    本文实例为大家分享了js实现简易聊天对话框的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>聊天对话框</title> <style type="text/css"> *{font-size: 14px; padding:0; ma···

    php minixml详解

    使用方法如下,可以看到miniXML的使用,与ActiveLink-PHP-XML-Package-0.4.0相比,更加符合使用习惯,也更加的简单.  $xmlDoc = new MiniXMLDoc();  $xmlRoot =& $xmlDoc->getRoot();  $childElement =& $xml···