DateTimeInterface
在线手册:中文  英文

DateTime::format

DateTimeImmutable::format

DateTimeInterface::format

date_format

(PHP 5 >= 5.2.0)

DateTime::format -- DateTimeImmutable::format -- DateTimeInterface::format -- date_formatReturns date formatted according to given format

说明

面向对象风格

public string DateTime::format ( string $format )
public string DateTimeImmutable::format ( string $format )
public string DateTimeInterface::format ( string $format )

过程化风格

string date_format ( DateTimeInterface $object , string $format )

Returns date formatted according to given format.

参数

object

仅为过程化风格:由 date_create() 返回的 DateTime 类型的对象。

format

Format accepted by date().

返回值

Returns the formatted date string on success 或者在失败时返回 FALSE.

范例

Example #1 DateTime::format() example

面向对象风格

<?php
$date 
= new DateTime('2000-01-01');
echo 
$date->format('Y-m-d H:i:s');
?>

过程化风格

<?php
$date 
date_create('2000-01-01');
echo 
date_format($date'Y-m-d H:i:s');
?>

以上例程会输出:

2000-01-01 00:00:00

注释

This method does not use locales. All output is in English.

参见


DateTimeInterface
在线手册:中文  英文

用户评论:

craig dot constable at gmail dot com (2012-03-02 04:24:37)

Using a datetime field from a mysql database e.g. "2012-03-24 17:45:12"

<?php

$result 
mysql_query("SELECT `datetime` FROM `table`");
$row mysql_fetch_row($result);
$date date_create($row[0]);

echo 
date_format($date'Y-m-d H:i:s');
#output: 2012-03-24 17:45:12

echo date_format($date'd/m/Y H:i:s');
#output: 24/03/2012 17:45:12

echo date_format($date'd/m/y');
#output: 24/03/12

echo date_format($date'g:i A');
#output: 5:45 PM

echo date_format($date'G:ia');
#output: 05:45pm

echo date_format($date'g:ia \o\n l jS F Y');
#output: 5:45pm on Saturday 24th March 2012

?>

ca at agercon dot dk (2011-07-01 08:16:09)

The date_format can be use to get the last day of February:

<?php 

function last_day_of_feb ($year) {
# The 0th day of a month is the same as the last day of the month before
        
$ultimo_feb_str $year "-03-00"
        
$ultimo_feb_date date_create($ultimo_feb_str);
        
$return date_format($ultimo_feb_date"Y-m-d");
        return 
$return;
}

echo 
last_day_of_feb(2011) . "\n"# 2011-02-28
echo last_day_of_feb(2012) . "\n"# 2011-02-29

?>

James Meyer (2011-01-06 11:49:12)

A note about version differences - the results of this function differ significantly from php 5.2.x to 5.3.x .
The 5.2 implementations will often parse to non-sensical values, such as:
1964/11-12: 1964/-99999/-99999
12/11-1964: -99999/12/11
12-31-1964: -99999/-99999/-99999
11121875: 1112/01/187
01321901: 0132/01/190
(this one makes sense, but was a poor guess)
31/12/1964: 1964/01/12
In 5.3+, these all come back as false, as I would expect. 5.2 was just a little optimistic about it's ability to parse dates, I guess.

eggerjohansi at gmail dot com (2010-04-21 09:04:46)

if you want to use e.g. german weekdays you could add the following class as a temporary solution...
<?php
class DateTimeGerman extends DateTime {
    public function 
format($format) {
        
$english = array('Monday''Tuesday''Wednesday''Thursday''Friday''Saturday''Sunday');
        
$german = array('Montag''Dienstag''Mittwoch''Donnerstag''Freitag''Samstag''Sonntag');
        return 
str_replace($english$germanparent::format($format));
    }
}
?>
it hasn't anything to do with nice programming but it works if you construct a
<?php
$dt 
= new DateTimeGerman();
?>
instead of
<?php
$dt 
= new DateTime();
?>

易百教程