PHP DateTime::带有html字符实体的格式


PHP DateTime::format with html character entities

我正在从MySQL数据库向DOM写入日期,该数据库由PHP的DateTime类(我的服务器运行PHP 5.5.14)格式化,如下

$start_date->format('M. d, Y');

然而,当它到达div的末尾时,这一年就要结束了。我希望我能插入这样一个不间断的空格:

$start_date->format('M. d, Y');

但这个班认为n和s是格式字符,并吐出了这样的胡言乱语:Mar&3b30便士;27,&3b30便士;2015年

我能逃脱那些角色吗?或者我必须制作一个函数,在日期格式化后用html字符实体替换空格?

您需要转义格式化字符:

'M.&'n'b's'p;d,&'n'b's'p;Y'

我只是逃离了他们所有人,而不是去寻找哪些人是必须逃离的。如果它们被转义,也更容易看出它们并不是格式的一部分。

这只适用于单引号字符串,因为'n将是双引号中的换行符。

您可以通过用前面的反斜杠转义ns来防止这种情况。

这行代码应该适用于您:

$start_date->format('M.&'nb'sp;d,&'nb'sp;Y');

这将输出:Mar. 27, 2015

一个很好的日期格式示例:http://php.net/manual/en/function.date.php#example-2501

或者您可以

<?php echo $start_date->format('M.'); ?>
&nbsp;
<?php echo $start_date->format('d,'); ?>
&nbsp;
<?php echo $start_date->format('Y'); ?>