2015-03-27 3 views
1

Я пишу даты к DOM из базы данных MySQL, которые в настоящее время, отформатированный с помощью РНР DateTime класса (моего сервер работает PHP 5.5.14), как этотPHP DateTime :: формат с символьными объектами HTML

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

Однако год завершается на новую строку, когда он достигает конца div. Я хотел бы вставить неразрывный пробел, как это:

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

Но класс думает, думает, п и s являются символами формата, и выкладывает эту тарабарщину: Mar. & 3b30p; 27, & 3b30p; 2015

Могу ли я избежать этих символов? Или мне нужно сделать функцию, которая заменяет пробелы объектами символов html после форматирования даты?

+0

Так вы отказались или что? – AbraCadaver

ответ

0

Вам нужно бежать те, которые являются символы формата:

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

Я просто сбежавшие их всех вместо того, чтобы искать какие из них необходимо экранировать. Также легче понять, что они не предназначены для части формата, если они экранированы.

Это будет работать только в одной кавычки, так как \n будет символом новой строки в двойном кавычке.

+0

Извините, увлекся другими проектами. Мне нравится просто убегать от всего персонажа. Это более читаемо. Благодарю. – kas

0

Вы можете предотвратить это, избегая 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

Смежные вопросы