PHP/Date/date

Материал из Web эксперт
Перейти к: навигация, поиск

calculate number days from date

   <source lang="html4strict">

<?php $futuredate = strtotime("45 days"); echo date("F d, Y", $futuredate); ?>

 </source>
   
  


Converting Human-Readable Dates Into Unix Timestamps Using strtotime()

   <source lang="html4strict">

<?php $mydatestrings = array("now", "today", "tomorrow", "yesterday", "Thursday", "this Thursday", "last Thursday", "+2 hours", "-1 month", "+10 minutes", "30 seconds", "+2 years -1 month", "next week","last month", "last year", "2 weeks ago" ); foreach($mydatestrings as $mydate)

   echo "$mydate:" . date("r", strtotime($mydate)) ;

?>

 </source>
   
  


Determining Whether a Given Year Is a Leap Year

   <source lang="html4strict">

<?php

 function is_leap_year($year)
 {
   $ts = strtotime("$year-01-01-");
   return date("L", $ts);
 }
 for($i = 2000; $i <= 2010; $i++)
 {
   $output = "$i is ";
   if( !is_leap_year($i) )
     $output .= "not ";
   $output .= "a leap year.
\n"; echo $output; }

?>

 </source>
   
  


Displaying Human-Readable Dates and Times

   <source lang="html4strict">

<?php

 $time = time();
 $formats = array(
                   "U", 
                   "r", 
                   "c", 
                   "l, F jS, Y, g:i A", 
                   "H:i:s D d M y", 
                   "m/j/y g:i:s a O (T)"
                 );
 foreach($formats as $format)
echo "

$format: " . date($format) . "

\n";

?>

 </source>
   
  


Format Codes for Use with date()

   <source lang="html4strict">

Format Description Example

a am or pm lowercase pm

A AM or PM uppercase PM

B Swatch beat (timezone-free "Internet time") 771

d Day of month (number with leading zeroes) 08

D Day of week (three letters) Wed

F Month name October

g Hour (12-hour format�no leading zeroes) 6

G Hour (24-hour format�no leading zeroes) 18

h Hour (12-hour format�leading zeroes) 06

H Hour (24-hour format�leading zeroes) 18

i Minutes 31

I Daylight savings time (Boolean value) 1

j Day of the month (no leading zeroes) 8

l Day of the week (name) Wednesday

L Leap year (1 for yes, 0 for no) 0

m Month of year (number�leading zeroes) 10

M Month of year (three letters) Oct

n Month of year (number�no leading zeroes) 10

o Offset in hours from GMT (in [+-]HHMM format) +0100

r Full date standardized to RFC 822 (http://www.faqs.org/rfcs/rfc822.html) Wed, 8 Oct 2003 18:31:15+0100

s Seconds, with leading zeroes 15

S English suffix for date in month (e.g. 20th) th

t Number of days in the given month 31

T Timezone setting on the machine used BST

U Unix timestamp 1065634275

w Day of week (number indexed from Sunday = 0) 3

W Week of year 41

y Year (two digits) 03

Y Year (four digits) 2003

z Day of year (0�366) 280

Z Offset in seconds from GMT 3600

 </source>
   
  


Format date in an array

   <source lang="html4strict">

<?php

 $mydates = array("2005-01-01", "2005-01-03", "2005-05-22", "2005-05-23", "2005-12-31");
 
 foreach($mydates as $mydate)
   echo date("D d M Y: \w\e\e\k W", strtotime($mydate)) . "
\n";

?>

 </source>
   
  


Formatting a Date with date()

   <source lang="html4strict">

<html> <head> <title>Formatting a Date with date()</title> </head> <body>

<?php print date("m/d/y G.i:s", time()); print "
"; print "Today is "; print date("jS of F Y, \a\\t g.i a", time()); ?>

</body> </html>

 </source>
   
  


Formatting Characters for the date() Function for Complete Date and Time

   <source lang="html4strict">

Character Description c ISO-8601 format (YYYY-MM-DDTHH:MM:SS�HHMM, for example, 2005-03-14T19:38:08+10:00). r RFC-2822 format WWW, DD MMM YYYY HH:MM:SS �HHMM, for example, Mon, 14 Mar 2005 19:38:08 +1000). U Seconds since the Unix epoch. Calling date("U")with no timestamp argument produces the same output as the time()function.

 </source>
   
  


Formatting Characters for the date() Function for Day

   <source lang="html4strict">

Character Description d Day of the month, with leading zeros (two digits). j Day of the month (no leading zeros). S Ordinal suffix for the day of the month, two characters (st, nd, th); most commonly used in combination with j. l(lowercase L) Full name of the day of the week (Monday, Tuesday, and so on). D A textual representation of a day, three letters (Mon, Tue, and so on). w Numeric representation of the day of the week (0 = Sunday, 6 = Saturday).

 </source>
   
  


Formatting Characters for the date() Function for Hour

   <source lang="html4strict">

Character Description h Hour in 12-hour format, with leading zero (two digits). g Hour in 12-hour format (no leading zero). H Hour in 24-hour format, with leading zero (two digits). G Hour in 24-hour format (no leading zero). a am/pm (lowercase). A AM/PM (uppercase). O(uppercase o) String representation of the difference in hours between local time and GMT/UTC (for example, +1000, �0500).

 </source>
   
  


Formatting Characters for the date() Function for Minute

   <source lang="html4strict">

Character Description i Minute, with leading zero (two digits). j Minute (no leading zero).

 </source>
   
  


Formatting Characters for the date() Function for Month

   <source lang="html4strict">

Character Description F Full name of the month (January, February, and so on). M Three-letter abbreviation for the month (Jan, Feb, and so on). m Numeric representation for the month, with leading zero (two digits). n Numeric representation for the month (no leading zero).

 </source>
   
  


Formatting Characters for the date() Function for Second

   <source lang="html4strict">

Character Description s Second, with leading zero (two digits). Z Integer representation of the difference in seconds between local time and GMT/UTC (for example, 36000 for GMT+1000 and �18000 for GMT�0500).

 </source>
   
  


Formatting Characters for the date() Function for Year

   <source lang="html4strict">

Character Description y Two-digit year. Y Four-digit year.

 </source>
   
  


Get different part of a date

   <source lang="html4strict">

$stamp = mktime(19,45,0,10,20,2004); print "Today is day ".date("d",$stamp)." of ".date("F",$stamp)." and day ".(date("z",$stamp)+1); print " of the year ".date("Y",$stamp).". The time is ".date("h:i A",$stamp); print " (also known as ".date("H:i",$stamp).").";

 </source>
   
  


Get file name, size, last access time and modified time

   <source lang="html4strict">

<?php

  function tstamp_to_date($tstamp) {
     return date("m-d-y  g:i:sa", $tstamp);
  }
  $file = "/data.txt";
  $fh = fopen($file, "r");
  $fileinfo = fstat($fh);
  echo "Filename: ".basename($file)."
"; echo "Filesize: ".round(($fileinfo["size"]/1024), 2)." kb
"; echo "Last accessed: ".tstamp_to_date($fileinfo["atime"])."
"; echo "Last modified: ".tstamp_to_date($fileinfo["mtime"])."
";

?>

 </source>
   
  


Greetings based on time

   <source lang="html4strict">

<html>

<head>
 <title>Greetings</title>
</head>
<body>
<?php
 $hour = date( "G" );
 $now = date( "g:i a" );
 $msg = "Good Evening.";
 if( $hour < 18 ) { $msg = "Good Afternoon."; }
 if( $hour < 12 ) { $msg = "Good Morning."; }
 echo( "$msg The time is $now" );
?>
</body>

</html>

 </source>
   
  


Making the date and time appear like we expect

   <source lang="html4strict">

<?php $timestamp= time( ); echo date("m/d/y G.i:s",$timestamp); ?>

 </source>
   
  


number days any month

   <source lang="html4strict">

<?php $lastday = mktime(0, 0, 0, 3, 0, 2006); printf("There are %d days in February, 2006.", date("t",$lastday)); ?>

 </source>
   
  


number days current month

   <source lang="html4strict">

<?php printf("There are %d days in %s.", date("t"), date("F")); ?>

 </source>
   
  


Offsets from UTC

   <source lang="html4strict">

$pc_timezones = array(

 "GMT"  =>   0,           // Greenwich Mean
 "UTC"  =>   0,           // Universal (Coordinated)
 "WET"  =>   0,           // Western European
 "WAT"  =>  -1*3600,      // West Africa
 "AT"   =>  -2*3600,      // Azores
 "NFT"  =>  -3*3600-1800, // Newfoundland
 "AST"  =>  -4*3600,      // Atlantic Standard
 "EST"  =>  -5*3600,      // Eastern Standard
 "CST"  =>  -6*3600,      // Central Standard
 "MST"  =>  -7*3600,      // Mountain Standard
 "PST"  =>  -8*3600,      // Pacific Standard
 "YST"  =>  -9*3600,      // Yukon Standard
 "HST"  => -10*3600,      // Hawaii Standard
 "CAT"  => -10*3600,      // Central Alaska
 "AHST" => -10*3600,      // Alaska-Hawaii Standard
 "NT"   => -11*3600,      // Nome
 "IDLW" => -12*3600,      // International Date Line West
 "CET"  =>  +1*3600,      // Central European
 "MET"  =>  +1*3600,      // Middle European
 "MEWT" =>  +1*3600,      // Middle European Winter
 "SWT"  =>  +1*3600,      // Swedish Winter
 "FWT"  =>  +1*3600,      // French Winter
 "EET"  =>  +2*3600,      // Eastern Europe, USSR Zone 1
 "BT"   =>  +3*3600,      // Baghdad, USSR Zone 2
 "IT"   =>  +3*3600+1800, // Iran
 "ZP4"  =>  +4*3600,      // USSR Zone 3
 "ZP5"  =>  +5*3600,      // USSR Zone 4
 "IST"  =>  +5*3600+1800, // Indian Standard
 "ZP6"  =>  +6*3600,      // USSR Zone 5
 "SST"  =>  +7*3600,      // South Sumatra, USSR Zone 6
 "WAST" =>  +7*3600,      // West Australian Standard
 "JT"   =>  +7*3600+1800, // Java 
 "CCT"  =>  +8*3600,      // China Coast, USSR Zone 7
 "JST"  =>  +9*3600,      // Japan Standard, USSR Zone 8
 "CAST" =>  +9*3600+1800, // Central Australian Standard
 "EAST" => +10*3600,      // Eastern Australian Standard
 "GST"  => +10*3600,      // Guam Standard, USSR Zone 9
 "NZT"  => +12*3600,      // New Zealand
 "NZST" => +12*3600,      // New Zealand Standard
 "IDLE" => +12*3600       // International Date Line East

);

 </source>
   
  


Outputs the date in the format of 31st of August 2005

   <source lang="html4strict">

print date("jS of F Y");

 </source>
   
  


Parsing a date with substr()

   <source lang="html4strict">

$date = "2010-12-03 05:12:56"; $date_parts[0] = substr($date,0,4); $date_parts[1] = substr($date,5,2); $date_parts[2] = substr($date,8,2); $date_parts[3] = substr($date,11,2); $date_parts[4] = substr($date,14,2); $date_parts[5] = substr($date,17,2); ?>

 </source>
   
  


Setting Time Zones and GMT/UTC

   <source lang="html4strict">

<?php

 $ts = time();
 echo date("r", $ts) . "
\n"; echo date("r", $ts) . "
\n"; echo strftime("%D %T %Z", $ts) . "
\n";

?>

 </source>
   
  


string date ( string date_format [, int timestamp] )

   <source lang="html4strict">

Format characters for use in date( ) Format character Description Example

a Lowercase am/pm am or pm

A Uppercase am/pm AM or PM

B Swatch Internet Time 000 to 999

c ISO 8601 date, time, and time zone 2004-06-18T09:26:55+01:00

d 2-digit day of month, leading zeros 01 to 31

D Day string, three letters Mon, Thu, Sat

F Month string, full January, August

g 12-hour clock hour, no leading zeros 1 to 12

G 24-hour clock hour, no leading zeros 0 to 23

h 12-hour clock hour, leading zeros 01 to 12

H 24-hour clock hour, leading zeros 00 to 23

i Minutes with leading zeros 00 to 59

I Is daylight savings time active? 1 if yes, 0 if no

j Day of month, no leading zeros 1 to 31

l Day string, full Monday, Saturday

L Is it a leap year? 1 if yes, 0 if no

m Numeric month, leading zeros 01 to 12

M Short month string Jan, Aug

n Numeric month, no leading zeros 1 to 12

O Difference from GMT 200

r RFC-822 formatted date Sat, 22 Dec 1979 17:30 +0000

s Seconds, with leading zeros 00 to 59

S English ordinal suffix for day number st, nd, rd, or th

t Number of days in month 28 to 31

T Time zone for server GMT, CET, EST

U Unix Timestamp 1056150334

w Numeric day of week 0 (Sunday), 6 (Saturday)

W ISO-8601 week number of year 30 (30th week of the year)

y Two-digit representation of year 97, 02

Y Four-digit representation of year 1997, 2002

z Day of year 0 to 366

Z Time zone offset in seconds -43200 to 43200

 </source>
   
  


Using various formatting strings with date().

   <source lang="html4strict">

<?php $time = time(); $formats = array("U","r","c","l, F jS, Y, g:i A","H:i:s D d M y","m/j/y g:i:s O (T)" ); foreach($formats as $format)

echo "

$format: " . date($format, $time) . "

\n";

?>

 </source>