我正在从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
将是双引号中的换行符。
您可以通过用前面的反斜杠转义n
和s
来防止这种情况。
这行代码应该适用于您:
$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.'); ?>
<?php echo $start_date->format('d,'); ?>
<?php echo $start_date->format('Y'); ?>