note 56200 added to ref.datetime
| From: | amit_sandilya at hotmail dot com | Date: | Fri, 26 Aug 2005 17:37:25 +0000 |
| Subject: | note 56200 added to ref.datetime | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-94232@lists.php.net to get a copy of this message | ||
To get count of week, weeks, day for particular week,date range,incremented date range, week's
from date and week's to date.
function date_compare($date1,$date2)
{
$time1=strtotime($date1);
$time2=strtotime($date2);
$day_count=0;
if($time2>$time1)
{
$time3=$time1;
for($i=$time3;$i<$time2;)
{
list($fy,$fm,$fd) = explode("-",$date1);
$date1= date("Y-m-d",mktime(0,0,0,$fm,$fd+1,$fy));
$time3=strtotime($date1);
if($time3==$time2)
{
$i=$time2;
}
$i=$time3;
$day_count++;
}
$val=1;
}
if($time1>$time2)
{
$time3=$time2;
for($i=$time3;$i<$time1;)
{
list($fy,$fm,$fd) = explode("-",$date2);
$date2= date("Y-m-d",mktime(0,0,0,$fm,$fd+1,$fy));
$time3=strtotime($date2);
if($time3==$time1)
{
$i=$time1;
}
$i=$time3;
$day_count++;
}
$val=-1;
}
elseif($time1==$time2)
{
$val=0;
}
return array($val,$day_count);
}
function get_week($date1,$date2,$end_date='')
{
$from_date=array();
$to_date=array();
$range=array();
$range1=array();
$day=array();
if($end_date<0){$end_date=6;}
if($end_date=="")
{
list($fm1,$fd1,$fy1) = explode("-",$date2);
$end_date= date("w",mktime(0,0,0,$fm1,$fd1,$fy1));
}
list($fm,$fd,$fy) = explode("-",$date1);
list($fm1,$fd1,$fy1) = explode("-",$date2);
$dat= date("w",mktime(0,0,0,$fm,$fd,$fy));
$dat_start=$dat;
$fdate1= date("Y-m-d",mktime(0,0,0,$fm,$fd,$fy));
$fdate2= date("Y-m-d",mktime(0,0,0,$fm1,$fd1,$fy1));
$fdate2_inc= date("Y-m-d",mktime(0,0,0,$fm1,$fd1+1,$fy1));
$check=date_compare($fdate2,$fdate1);
$from_date[]=$fdate1;
$deterange="'".$fdate1."' and ";
$week=0;
while($check[0]<0)
{
$i=0;
while($dat_start!=$end_date)
{
$day[$week][]= date("D",mktime(0,0,0,$fm,$fd+$i,$fy));
$dat_start= date("w",mktime(0,0,0,$fm,$fd+$i,$fy));
$i++;
}
if($week==0 && $dat==$end_date)
$day[$week][]= date("D",mktime(0,0,0,$fm,$fd+$i,$fy));
if($i>0)$i--;
$inc=$i+1;
$tdate= date("Y-m-d",mktime(0,0,0,$fm,$fd+$i,$fy));
$tdate_inc= date("Y-m-d",mktime(0,0,0,$fm,$fd+$i+1,$fy));
$fdate1= date("Y-m-d",mktime(0,0,0,$fm,$fd+$inc,$fy));
$check=date_compare($fdate2,$fdate1);
if($check[0]!=1)
{
$from_date[]=$fdate1;
$to_date[]=$tdate;
$range[]=$deterange."'".$tdate."'";
$range1[]=$deterange."'".$tdate_inc."'";
$deterange="'".$fdate1."' and ";
}
list($fy,$fm,$fd) = explode("-",$fdate1);
$dat_start=$end_date+1;
$week++;
}
$to_date[]=$fdate2;
$range[]=$deterange."'".$fdate2."'";
$range1[]=$deterange."'".$fdate2_inc."'";
$deterange=$deterange.",".$fdate2;
$count=count($to_date);
return array($from_date,$to_date,$count,$range,$range1,$day);
}
$date1="08-01-2005";
$date2="08-31-2005";
$end_date=2;
$data=get_week($date1,$date2,$end_date);
print_r($data[0]);
echo "<br>";
print_r($data[1]);
echo "<br>";
print_r($data[2]);
echo "<br>";
print_r($data[3]);
echo "<br>";
print_r($data[4]);
echo "<br>";
print_r($data[5]);
----
Manual Page -- http://www.php.net/manual/en/ref.datetime.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+56200
Delete: added to the manual -- http://master.php.net/manage/user-notes.php?action=delete+56200&report=yes&reason=added+to+the+manual
Delete: bad code -- http://master.php.net/manage/user-notes.php?action=delete+56200&report=yes&reason=bad+code
Delete: spam -- http://master.php.net/manage/user-notes.php?action=delete+56200&report=yes&reason=spam
Delete: useless -- http://master.php.net/manage/user-notes.php?action=delete+56200&report=yes&reason=useless
Delete: non-english -- http://master.php.net/manage/user-notes.php?action=delete+56200&report=yes&reason=non-english
Delete: other reasons -- http://master.php.net/manage/user-notes.php?action=delete+56200&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+56200&report=yes
Search -- http://master.php.net/manage/user-notes.php