在线文档教程
PHP
日期和时间 | Date and Time

DateTime::__construct

DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7)

DateTime :: __ construct - date_create - 返回新的DateTime对象

描述

面向对象的风格

public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

程序风格

DateTime date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

返回新的DateTime对象。

参数

time

日期/时间字符串。有效格式在日期和时间格式中进行说明。

在此处输入“now”以获取使用$timezone参数时的当前时间。

timezone

表示时区的DateTimeZone对象$time

如果$timezone省略,则将使用当前时区。

注意$timezone$time参数是UNIX时间戳(例如@ 946684800)或指定时区(例如2010-01-28T15:00:00 + 02:00)时,参数和当前时区将被忽略。

返回值

返回一个新的DateTime实例。程序风格FALSE在失败时返回。

错误/异常

发生错误时发出异常。

更新日志

描述
5.3.0如果时间包含无效的日期/时间格式,则现在抛出异常。以前发生了一个错误。
7.1从现在起微秒充满实际价值。不与'00000'。

例子

示例 #1 DateTime::__construct() example

面向对象的风格

<?php try {     $date = new DateTime('2000-01-01' } catch (Exception $e) {     echo $e->getMessage(     exit(1 } echo $date->format('Y-m-d' ?>

程序风格

<?php $date = date_create('2000-01-01' if (!$date) {     $e = date_get_last_errors(     foreach ($e['errors'] as $error) {         echo "$error\n";     }     exit(1 } echo date_format($date, 'Y-m-d' ?>

上面的例子会输出:

2000-01-01

示例 #2 Intricacies of DateTime::__construct()

<?php // Specified date/time in your computer's time zone. $date = new DateTime('2000-01-01' echo $date->format('Y-m-d H:i:sP') . "\n"; // Specified date/time in the specified time zone. $date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru') echo $date->format('Y-m-d H:i:sP') . "\n"; // Current date/time in your computer's time zone. $date = new DateTime( echo $date->format('Y-m-d H:i:sP') . "\n"; // Current date/time in the specified time zone. $date = new DateTime(null, new DateTimeZone('Pacific/Nauru') echo $date->format('Y-m-d H:i:sP') . "\n"; // Using a UNIX timestamp.  Notice the result is in the UTC time zone. $date = new DateTime('@946684800' echo $date->format('Y-m-d H:i:sP') . "\n"; // Non-existent values roll over. $date = new DateTime('2000-02-30' echo $date->format('Y-m-d H:i:sP') . "\n"; ?>

上面的例子会输出类似于:

2000-01-01 00:00:00-05:00 2000-01-01 00:00:00+12:00 2010-04-24 10:24:16-04:00 2010-04-25 02:24:16+12:00 2000-01-01 00:00:00+00:00 2000-03-01 00:00:00-05:00