Почему «\ t» избегает этого формата даты PHP?

Вот дата. Все ускользает, но t находится в «\ a \ t». Кто-нибудь знает, почему?

date("M m\, Y \a\tg\:ia", $s->post_date); 

"\t" – это escape-последовательность для символа горизонтальной вкладки.

Используйте '\t' или "\\t"

Строки с одним кавычком интерпретируются \ буквально, что я бы рекомендовал для вашего случая использования. В противном случае вам нужно избежать символа \ чтобы он интерпретировался буквально.

В случае PHP, \ предшествующий некорректной escape-последовательности внутри строки с двумя кавычками также интерпретируется буквально. Я бы предпочел избежать такого поведения, следуя принципу наименьшего удивления.

пс. (благодаря @IMSoP) Есть два случая, когда \ s не интерпретируются буквально внутри строк с одной кавычкой:

  • Удвоение обратных косых черт по-прежнему возможно, но необязательно. Например: '\\hi' === '\hi'
  • Символ строкового разделителя должен быть экранирован внутри строкового литерала. Например: '\'' === "'"

Тем не менее, однокасканные строки менее удивительны в том, что \n , \r , \t , \v , \040 и аналогичный результат в фактической последовательности символов внутри строкового литерала вместо того, чтобы они интерпретировались как escape-последовательности.

Удвоение всех обратных косых черт, которые нужно интерпретировать буквально, также является прочным вариантом, который работает как с двойными, так и с одиночными кавычками.