Zend - The PHP Company




Date & Time

Add Code


Friendly Date Range  

Type: code fragment
Added by: wilton
Entered: 18/05/2003
Last modified: 09/12/2002
Rating: - (fewer than 3 votes)
Views: 5238
Give this function two dates, of format YYYY-MM-DD and it will print a friendly intelligent string. ie it only print date elements that are different between the two dates.


<?php
function date_range($startdate,$enddate) {
  
//                                                                                                                  
  // Print friendly date range given start and end in YYYY-MM-DD format.                                              
  //                                                                                                                  

  
$start getdate(strtotime($startdate));
  
$end getdate(strtotime($enddate));

  if ((
$start['year'] == $end['year'])
  AND (
$start['month'] == $end['month'])
      AND (
$start['mday'] == $end['mday'])){
    
$dates date ("l jS F, Y",strtotime($startdate));
  }

  if ((
$start['year'] == $end['year'])
  AND (
$start['month'] == $end['month'])
      AND (
$start['mday'] != $end['mday'])){
    
$dates date("l jS",strtotime($startdate));
    
$dates .= " - ";
    
$dates .= date ("l jS F, Y",strtotime($enddate));
  }

  if ((
$start['year'] == $end['year'])
  AND (
$start['month'] != $end['month'])
      AND (
$start['mday'] != $end['mday'])){
    
$dates date("l jS F",strtotime($startdate));
    
$dates .= " - ";
    
$dates .= date ("l jS F, Y",strtotime($enddate));
  }

if ((
$start['year'] != $end['year'])
  AND (
$start['month'] != $end['month'])
      AND (
$start['mday'] != $end['mday'])){
    
$dates date("l jS F, Y",strtotime($startdate));
    
$dates .= " - ";
    
$dates .= date ("l jS F, Y",strtotime($enddate));
  }

  return 
$dates;
}
?>


Usage Example


eg
date_range('2003-03-22',2003-03-25');
Saturday 22nd - Tuesday 25th March, 2003

or
date_range('2003-03-22',2003-04-25');
Saturday 22nd March - Friday 25th April, 2003


Rate This Script





Search



This Category All Categories