谷歌镜像 伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

PHP - Manual: DateTime::createFromInterface

来源:网络转载 浏览:41681次 时间:2023-11-22
DateTime::getLastErrors » « DateTime::createFromImmutable
  • PHP 手册
  • 函数参考
  • 日期与时间相关扩展
  • 日期/时间
  • DateTime

DateTime::createFromInterface

(PHP 8)

DateTime::createFromInterface — Returns new DateTime object encapsulating the given DateTimeInterface object

说明

public static DateTime::createFromInterface(DateTimeInterface $object): DateTime

参数

object

The DateTimeInterface object that needs to be converted to a mutable version. This object is not modified, but instead a new DateTime object is created containing the same date, time, and timezone information.

返回值

Returns a new DateTime instance.

范例

示例 #1 Creating a mutable date time object

<?php
$date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");

$mutable = DateTime::createFromInterface($date);

$date = new DateTime("2014-06-20 11:45 Europe/London");
$also_mutable = DateTime::createFromInterface($date);
?>
add a note

User Contributed Notes 2 notes

up down 1 gabrielpl at gmail dot com10 months ago php7 polyfill:

<?php

// keep timezone and microseconds precision
function polyfillDateTimeCreateFromInterface(DateTimeInterface $dti): DateTime {
    $tz = $dti->getTimezone();
    return new DateTime($dti->format('Y-m-d H:i:s.u'), $tz ? $tz : null);
}

?>

Testing:

<?php

var_dump(
  ($a = new DateTimeImmutable()),
  ($b = polyfillDateTimeCreateFromInterface($a)),
  $a == $b
);

?>
up down -2 divinity76 at gmail dot com11 months ago php7 polyfill:

<?php

// php7 polyfill for php8' DateTime::createFromInterface
function PolyfillDateTimeCreateFromInterface(DateTimeInterface $dti):DateTime{
    $tz = $dti->getTimezone();
    $ret = DateTime::createFromFormat(DateTimeInterface::RFC3339, $dti->format(DateTimeInterface::RFC3339));
    if(!!$tz){
        // without this: timezone +01:00
        // with this: timezone Europe/Oslo
        $ret = $ret->setTimezone($tz);
    }
    return $ret;
}

?>

testing it:
<?php
$dt = new DateTimeImmutable("1970-01-01",timezone_open("Europe/Oslo"));
$dti = PolyfillDateTimeCreateFromInterface($dt);
var_dump($dti->format(DateTime::RFC3339), $dti->getTimezone());
die();
?>
gives:

string(25) "1970-01-01T00:00:00+01:00"
object(DateTimeZone)#2 (2) {
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(11) "Europe/Oslo"
}

- and warning: using the TimeZone argument of the DateTime constructor is a trap, in the example above if i used the constructor argument instead of setTimezone(), it would become "timezone_type=>1 timezone=>+01:00" instead of "timezone=>europe/oslo", the actual timezone name would be lost.
add a note

官方地址:https://www.php.net/manual/en/datetime.createfrominterface.php

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net