Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
<?
function russian_date($input) {
$date=explode("-", date("Y-m-d",strtotime($input)));
switch ($date[1]) {
case 1: $m='ЯНВАРЬ'; break;
case 3: $m='МАРТ'; break;
case 4: $m='АПРЕЛЬ'; break;
case 5: $m='МАЙ'; break;
case 6: $m='ИЮНЬ'; break;
case 2: $m='ФЕВРАЛЬ'; break;
case 7: $m='ИЮЛЬ'; break;
case 8: $m='АВГУСТ'; break;
case 9: $m='СЕНТЯБРЬ'; break;
case 10: $m='ОКТЯБРЬ'; break;
case 11: $m='НОЯБРЬ'; break;
case 12: $m='ДЕКАБРЬ'; break;
}
echo ($m.' '.$date[0]);
}
?>
Образцовый код из одного мегапроекта от профессионалов.
Такие монстры рождаются, когда не знаешь о локали.
Думал, как написать на «PHP» без лишних переменных. Получается длинная питушня. В итоге всё-таки ввёл временную переменную:
<?php
define('MONTHS', 'ЯНВАРЬ ФЕВРАЛЬ МАРТ АПРЕЛЬ МАЙ ИЮНЬ ИЮЛЬ АВГУСТ СЕНТЯБРЬ ОКТЯБРЬ НОЯБРЬ ДЕКАБРЬ');
function russian_date($x) {
$tmp = explode(' ', @date('m Y',@strtotime($x)));
return explode(' ', MONTHS)[$tmp[0]-1] . ' ' . $tmp[1];
}
echo russian_date('2019-09-03');
Вот примерный перевод, за исключением того, что в 'J' date(explode(...)) не нужен, getdate возвращает сразу массив Y m d
<?php
define('MONTHS', explode(' ', 'ЯНВАРЬ ФЕВРАЛЬ МАРТ АПРЕЛЬ МАЙ ИЮНЬ ИЮЛЬ АВГУСТ СЕНТЯБРЬ ОКТЯБРЬ НОЯБРЬ ДЕКАБРЬ'));
function russian_date($x) {
return (function($y){return MONTHS[$y[1]-1] . ' ' . $y[0];})(explode(' ', date('Y m d', strtotime($x))));
}
?>
<?=russian_date('2019-09-03');?>
Именно поэтому
У этой штуки есть компилятор в js?
Аааа! Этот голос в конце не выходит из головы
пи-уай-ти
уай-ти, уай-ти
ти-эл-си
эл-си, эл-си
Лучше скажи могу ли я получить загранпаспорт?
нет, не можешь, пока тебя судимость за изнасилование крупного рогатого скота не снимут
кууу
Странный порядок, автор когда писал забыл какой месяц второй, а когда дошел до июля вспомнил?
Февраль
Куда-то к черту убежал.