Просмотрите этот минимальный PHP фрагмент:
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::NONE,
IntlDateFormatter::NONE,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
var_dump($fmt->format(time()));
В руководстве по https://www.php.net/manual/en/class.intldateformatter.php говорится:
IntlDateFormatter :: NONE (целое число) Не включайте этот элемент
Тем не менее, хотя я установил для $ datetype и $ timetype значение "IntlDateFormatter :: NONE" выше, он все равно выдает:
string(17) "20200122 07:34 PM"
Я ожидал :
string(0) ""
Я понимаю, что это своего рода «глупая» ситуация, так как кто-то когда-либо установит оба в NONE и захочет, чтобы он ничего не выводил? Но так как я обнаружил это, я чувствую, что, возможно, что-то упустил, и что варианты не совсем означают то, что я думаю, они имеют в виду. Пожалуйста, уточните для меня.
PS: Все остальные варианты, такие как «FULL», работают. Просто если оба они равны «NONE», похоже, что они возвращаются к какому-то «pani c default» или к чему-то еще. Это может быть преднамеренным?