PHP DateTime类打开/关闭标记

时间:2016-02-09 10:45:36

标签: php datetime standards

我正在学习一些教程并遇到一些似乎无法解决的问题。一直在寻找它的推理或意义。

刚刚使用DateTime课程,我遇到了这段代码并试了一下。我使用时代码不会给我输出。

<?php

当我使用时它会给我输出。

<?=

我已经在PHP中阅读过这种符号,现在更多的是个人偏好。仍然建议使用标准的打开/关闭标签,因为较旧的PHP版本在理解较新的标签时不可行。

所以我的问题很简单:为什么echo语句中的DateTime类只接受<?= ?>这个标记来向我显示一些输出。

<?php

$publishDate = '2014-08-24 09:14:00';

$localDateTime = new DateTime($publishDate, new DateTimeZone('America/New_York'));

$utcDateTime = clone $localDateTime;

$utcDateTime->setTimeZone(new DateTimeZone('UTC'));

?>

<p>The UTC date/time is: <?= $utcDateTime->format("Y-m-d H:i:s") ?></p>
<p>The New York date/time is: <?= $localDateTime->format("Y-m-d H:i:s") ?></p>"

2 个答案:

答案 0 :(得分:2)

<?=是简写的PHP echo语句,基本上是<?php echo(...

请注意,此标记与短开标记混淆:<? - 它是一个完全不同的运算符,从PHP 5.4开始,“短回声标记”实际上不受short_open_tag设置的影响: http://php.net/manual/en/language.basic-syntax.phptags.php

答案 1 :(得分:1)

所以<?php<?=是两个不同的东西,后者是一个速记,如果你想用echo做同样的事情你也会使用<?php类似的东西:

<?php 

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

或者在你的例子中:

<p>The UTC date/time is: <?php echo $utcDateTime->format("Y-m-d H:i:s") ?></p>
<p>The New York date/time is: <?php echo $localDateTime->format("Y-m-d H:i:s") ?></p>"