VIP用户交流群:462197261 收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
在线客服:78895949
tonglan
  • 当前位置:
  • 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.jb51.net/jisuanqi/date_jisuanqi

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

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

    在线天数计算器:
    http://tools.jb51.net/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获取指定日期周数以及星期几的小例子

    广而告之:
    热门推荐:
    超链接打开目标(target)的测试

    链接的target属性决定了链接在哪边打开,它的值通常为以下五种:_blank、_self、_parent、_top和自定义,依次表示为:新窗口、当前窗口、父窗口、顶层窗口和框架。当所指名称的框架不存在时,自定义作用等同于_blank。今天我们主要测试一下当所指名称的框架处于不同层次页面中···

    DEDE批量删除文档关键词和搜索关键词

    玩dedecms的朋友都知道,网站运营时间长了以后会产生很多的关键词,少则几百个,多则几千上万的,如果网站在批量维护-文档关键词维护里面一条条删除的话会非常的麻烦,今天织梦58就告诉大家怎么样快速删除这个多余的关键词,一键删除所有文档关键字。其实很简单,用dedecms···

    mysql入门之1小时学会MySQL基础

    MySQL入门 mySQL (关系型数据库管理系统) MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管···

    Mysql事务操作失败如何解决

    Mysql事务操作失败如何解决 事务的原子性 :事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 。 要实现事务的原子性,单单靠一条commit或是rollback命令还是不行的,因为例如commit命令它只是将一个事务中执行成功的DML语句提交给数据库里。如果要实现事···

    简单谈谈关于Angular Cli打包的事

    本文主要给大家介绍了关于Angular Cli打包的事,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一、引言 Angular从开发再到生产环境部署都离不开Angular Cli工具集,而Angular Cli本质上是使用 Webpack(当前使用版本为2) 来打包资源。 Webpack 本身并···

    利用php-cli和任务计划实现订单同步功能的方法

    1、应用场景 用户的订单情况,需要我们去平台网站通过API获取。有两个要点: (1)用户遍历,我们必须遍历每个用户,去获取他们的订单; (2)定时获取,获取用户订单不是一劳永逸的,现在没有不代表下一秒没有,我们必须设定一个合适的时间间隔去获取他。 2、通过遍历表来实···

    基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码

    前言 摘要:2D 的俄罗斯方块已经被人玩烂了,突发奇想就做了个 3D 的游戏机,用来玩俄罗斯方块。。。实现的基本想法是先在 2D 上实现俄罗斯方块小游戏,然后使用 3D 建模功能创建一个 3D 街机模型,最后将 2D 小游戏贴到 3D 模型上。 (ps:最后拓展部分实现将视频与3D模型的结···

    在小程序中推送模板消息的实现方法

    前段时间剁手了 PS4,在浏览商店时,发现官方商店真的不好用,主要是网络原因,次要是页面设计。所以就想自己做一个游戏查询的小程序,可以关注某个游戏,然后在这个游戏打折的时候发送通知给用户。最后发现有个很大的问题是:小程序没法直接给用户推送消息(当时还不知道模板消···

    PHP+sqlite数据库操作示例(创建/打开/插入/检索)

    本文实例讲述了PHP+sqlite数据库操作的方法。分享给大家供大家参考,具体如下: SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非 常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Un···

    php一句话cmdshell新型 (非一句话木马)

    复制代码 代码如下:<?php /*一个新型的php一句话cmdshell(非一句话木马) //原理:php运行时如果遇见字符``(键盘上~符号的下档键)总会尝试着执行``里面包含的命令,并返回命令执行的结果(string类型); //局限性:特征码比较明显,``符号在php中很少用到,杀毒软件很容易···