[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/phpgwapi/js/dynapi/ext/ -> functions.date.js (source)

   1  /*
   2      DynAPI Distribution
   3      dynapi.functions.Date extension    
   4  */
   5  
   6  var f = dynapi.functions;
   7  f.Date = {}; // used by dynapi.library
   8  
   9  // Date Functions --------------------------------------
  10  
  11  f.dateAdd = function(interval,n,dt){
  12      if(!interval||!n||!dt) return;    
  13      var s=1,m=1,h=1,dd=1,i=interval;
  14      if(i=='month'||i=='year'){
  15          dt=new Date(dt);
  16          if(i=='month') dt.setMonth(dt.getMonth()+n);
  17          if(i=='year') dt.setFullYear(dt.getFullYear()+n);        
  18      }else if (i=='second'||i=='minute'||i=='hour'||i=='day'){
  19          dt=Date.parse(dt);
  20          if(isNaN(dt)) return;
  21          if(i=='second') s=n;
  22          if(i=='minute'){s=60;m=n}
  23          if(i=='hour'){s=60;m=60;h=n};
  24          if(i=='day'){s=60;m=60;h=24;dd=n};
  25          dt+=((((1000*s)*m)*h)*dd);
  26          dt=new Date(dt);
  27      }
  28      return dt;
  29  };
  30  f.dateDiff=function(interval,dt1,dt2){
  31      if(!interval||!dt1||!dt2) return;    
  32      var v,s=1,m=1,h=1,dd=1,i=interval;    
  33      if(i=='month'||i=='year'){
  34          dt1=new Date(dt1);
  35          dt2=new Date(dt2);
  36          years=dt2.getFullYear()-dt1.getFullYear();
  37          if (i=='year') v=years;
  38          else if(i=='month') {
  39              v=(dt2.getMonth()+1)-(dt1.getMonth()+1);
  40              if(years!=0) v+=(years*12);            
  41          }
  42      }else if (i=='second'||i=='minute'||i=='hour'||i=='day'){
  43          dt1=Date.parse(dt1);
  44          dt2=Date.parse(dt2);
  45          if(isNaN(dt1)||isNaN(dt2)) return;
  46          v=dt2-dt1;
  47          if(i=='second') s=1000;
  48          if(i=='minute') s=60000;
  49          if(i=='hour'){s=60000;m=60};
  50          if(i=='day'){s=60000;m=60;h=24;};
  51          v=((((v/s)/m)/h)/dd);
  52      }
  53      return v;
  54  };
  55  f.formatDate = function(date,format){
  56      if(!date) return '';
  57      var dt=new Date(date);
  58      var mm=dt.getMonth();
  59      var dd=dt.getDate();
  60      var day=dt.getDay();
  61      var yyyy=dt.getFullYear();
  62      var hh=dt.getHours();
  63      var nn=dt.getMinutes();
  64      var ss=dt.getSeconds();
  65      var ampm;
  66  
  67      var days=['Sunday','Monday','Teusday','Wednesday','Thursday','Friday','Saturday'];
  68      var months=['January','February','March','April','May','June','July','August','September','October','November','December'];
  69  
  70      format=(format)? (format+'').toLowerCase():'dddd, mmmm dd, yyyy hh:nn:ss ampm';
  71      format=format.replace('mmmm',months[mm]);
  72      format=format.replace('mmm',months[mm].substr(0,3));
  73      format=format.replace('mm',mm+1);
  74      format=format.replace('dddd',days[day]);
  75      format=format.replace('ddd',days[day].substr(0,3));
  76      format=format.replace('dd',dd);
  77      format=format.replace('yyyy',yyyy);
  78      if(format.indexOf('ampm')>0){
  79          if(hh>12) hh=hh-12;
  80          if(hh<12) ampm='AM';
  81          else ampm='PM';
  82          format=format.replace('ampm',ampm);
  83      }
  84      format=format.replace('hh',hh);
  85      format=format.replace('nn',nn);
  86      format=format.replace('ss',ss);
  87  
  88      return format;
  89  };
  90  f.getDayOfYear = function(dt){
  91      dt = new Date(dt);
  92      if(isNaN(dt)) dt = new Date();
  93      var yr = new Date(dt.getFullYear(),0,1);
  94      yr = yr.getTime() - (yr.getDay()-1)*(24*60*60*1000);
  95      return(Math.ceil((dt.getTime() - yr)/(24*60*60*1000)));
  96  };
  97  f.isDate = function(dt,format){
  98      if (!dt) return false;
  99      var dd,mm,yyyy;
 100      var isLeapYear,st=true,delim='/';
 101      dt+='';format=(format)? format+'':'';
 102      if(dt.indexOf('/')>=0) delim='/';
 103      else if(dt.indexOf('-')>=0) delim='-';
 104      else if(dt.indexOf(' ')>=0) delim=' ';
 105      dt=dt.split(delim);
 106      if(format) format=format.replace(/\W/g,'/');
 107      else {
 108          if (dt[0]>=1000) format='yyyy/mm/dd';
 109          else if (dt[0]>=12 && dt[1]<=12) format='dd/mm/yyyy';
 110          else if (dt[0]<=12 && dt[1]>=12) format='mm/dd/yyyy';
 111      };
 112      if(format=='yyyy/mm/dd'){yyyy=dt[0];mm=dt[1];dd=dt[2];}
 113      else if(format=='mm/dd/yyyy'){mm=dt[0];dd=dt[1];yyyy=dt[2];}
 114      else if(format=='dd/mm/yyyy'){dd=dt[0];mm=dt[1];yyyy=dt[2];}
 115      if(isNaN(dd)||isNaN(mm)||isNaN(yyyy)) st=false;
 116      else if(dd<1 || dd>31) st=false;
 117      else if(yyyy>9999) st=false;
 118      else if (mm < 1 || mm > 12) st=false;
 119      else if((mm==4 || mm==6 || mm==9 || mm==11) && dd==31) st=false;
 120      else if(mm==2) { // check for leap year and february 29th
 121          isLeapYear = (yyyy % 4 == 0 && (yyyy % 100 != 0 || yyyy % 400 == 0));
 122          if (dd > 29 || (dd==29 && !isLeapYear)) st=false;
 123      }
 124      return st;
 125  };
 126  


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7