带有html字符实体的PHP DateTime :: format

时间:2015-03-27 19:33:49

标签: php html datetime html-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.& 3b30p; 27,& 3b30p; 2015

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

3 个答案:

答案 0 :(得分:0)

您需要转义格式字符:

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

我只是将它们全部逃脱而不是查找哪些必须被转义。如果它们被转义,也更容易看出它们不是格式的一部分。

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

答案 1 :(得分:0)

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

这行代码适合您:

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

这将输出:Mar. 27, 2015

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

答案 2 :(得分:0)

或者您可以

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