[ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
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
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |