Yii2 и работа с датой [Решено]
Yii2 и работа с датой [Решено]
Покопал Yii2 но не смог хорошо разобраться с датой. В доках поискал конкретно док по дате, но не нашел. В поиске нашел отдельно куски где используется форматирование датой, но к сожалению. этого не достаточно. Может плохо искал.
Подскажите пожалуйста как работать с датой в Yii2 ?
Интересует:
- текущая дата
- форматирование даты, например 2014-03-16 21:45:51 в "16 марта 2014 года в 21:45", также если есть с юникс форматами
- Операции с датами, + - интервал времени
Подскажите пожалуйста как работать с датой в Yii2 ?
Интересует:
- текущая дата
- форматирование даты, например 2014-03-16 21:45:51 в "16 марта 2014 года в 21:45", также если есть с юникс форматами
- Операции с датами, + - интервал времени
Последний раз редактировалось nepster 2014.03.18, 18:21, всего редактировалось 1 раз.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Yii2 и работа с датой
Текущая дата:
Форматирование даты:
Операции:
И да, это всё часть PHP.
Код: Выделить всё
new DateTime()
Код: Выделить всё
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:s');
Код: Выделить всё
$launchDate = new DateTime("2015-01-01", new DateTimeZone("UTC"));
$today = new DateTime();
$daysToLaunch = $today->diff($launchDate, false)->days;
Нравится Yii? Давайте сделаем его лучше!.
Re: Yii2 и работа с датой
это я раньше, если где-то во фраэмворке не разбирался, особо не колебался и писал себе библиотеку на чистом php. Сейчас хочу полностью на 100% разобраться с возможностями, поэтому если что-то не нахожу сразу спрашиваю. Как пример перебираю старый проект на yii1 и выбрасываю по сути 70% кода. Так как это давным давно уже было реализовано из коробки.
Я так понял в Yii2 не включили работу с датой в пользу стандартного php класса который появился в версии 5.3 ? Так как в yii1, были стандартные хелперы для даты
Я так понял в Yii2 не включили работу с датой в пользу стандартного php класса который появился в версии 5.3 ? Так как в yii1, были стандартные хелперы для даты
Re: Yii2 и работа с датой [Решено]
большое спасибо!
Re: Yii2 и работа с датой [Решено]
Есть вариант потипу такого:
Код: Выделить всё
Yii::$app->formatter->asDatetime($value, Yii::$app->params['dateFormat']);
Re: Yii2 и работа с датой [Решено]
Выводит - декабря, 2014$product->dt = '2014-12-03';
\Yii::$app->formatter->asDate($product->dt, 'php:F, Y');
есть ли возможность вывести декабрь, 2014 (именительный падеж)?
или все же надо писать свои массив с месяцами?
Re: Yii2 и работа с датой [Решено]
Попробуйте задать дату в ICU формате. http://userguide.icu-project.org/formatparse/datetimekutsanov писал(а):Выводит - декабря, 2014$product->dt = '2014-12-03';
\Yii::$app->formatter->asDate($product->dt, 'php:F, Y');
есть ли возможность вывести декабрь, 2014 (именительный падеж)?
или все же надо писать свои массив с месяцами?
Не уверен, но посмотрите M vs L.
- I_decision
- Сообщения: 5
- Зарегистрирован: 2016.04.16, 18:08
- Контактная информация:
Re: Yii2 и работа с датой [Решено]
1) Вам нужно написать функцию php:
function translite($value) {
$value = strtr($value, array(
"January" => "январь",
"February" => "февраль",
"March" => "март",
"April" => "апрель",
"May" => "май",
"June" => "июнь",
"July" => "июль",
"August" => "август",
"September" => "сентябрь",
"October" => "октябрь",
"November" => "ноябрь",
"December" => "декабрь"));
return $value;
}
-----------------------------------------------------------
2) положить в папку , ну к примеру "dll" , файл , назовём его "function.php"
3) Положить папку "dll" с файлом "function.php" во "вьюшку" Yii
4) на созданной странице, где через use подключаются классы добавляем нашу библиотеку:
require(__DIR__ . '/../dll/function.php');
5) после <?php ?> пишем:
<?php foreach ($post as $year) { ?>
<li>
<a href="/ru/site/year/<?php echo Yii::$app->formatter->asDate($year->show_time, 'php:Y');?>">
<?php
echo translite(Yii::$app->formatter->asDate($year->show_time, 'php:F '));
echo Yii::$app->formatter->asDate($year->show_time, 'php:Y');
?>
</a>
</li>
<?php } ?>
где:
$post = Article::find()->all(); <------- это пишем в экшене контроллера
$year->show_time = '03.04.2016'; <------------- эти даты можно вывести через БД или через массив, смотря какая задача.
-----------------------------------------------------
получится что-то типа:
май 2014
июнь 2014
июнь 2014
апрель 2016
-----------------------------------------------------------------
мне приятно, если я кому-то помог
function translite($value) {
$value = strtr($value, array(
"January" => "январь",
"February" => "февраль",
"March" => "март",
"April" => "апрель",
"May" => "май",
"June" => "июнь",
"July" => "июль",
"August" => "август",
"September" => "сентябрь",
"October" => "октябрь",
"November" => "ноябрь",
"December" => "декабрь"));
return $value;
}
-----------------------------------------------------------
2) положить в папку , ну к примеру "dll" , файл , назовём его "function.php"
3) Положить папку "dll" с файлом "function.php" во "вьюшку" Yii
4) на созданной странице, где через use подключаются классы добавляем нашу библиотеку:
require(__DIR__ . '/../dll/function.php');
5) после <?php ?> пишем:
<?php foreach ($post as $year) { ?>
<li>
<a href="/ru/site/year/<?php echo Yii::$app->formatter->asDate($year->show_time, 'php:Y');?>">
<?php
echo translite(Yii::$app->formatter->asDate($year->show_time, 'php:F '));
echo Yii::$app->formatter->asDate($year->show_time, 'php:Y');
?>
</a>
</li>
<?php } ?>
где:
$post = Article::find()->all(); <------- это пишем в экшене контроллера
$year->show_time = '03.04.2016'; <------------- эти даты можно вывести через БД или через массив, смотря какая задача.
-----------------------------------------------------
получится что-то типа:
май 2014
июнь 2014
июнь 2014
апрель 2016
-----------------------------------------------------------------
мне приятно, если я кому-то помог
не так страшен код, как его трактуют
Re: Yii2 и работа с датой [Решено]
проще написать костыль, чем обновить ICU, да?)
- I_decision
- Сообщения: 5
- Зарегистрирован: 2016.04.16, 18:08
- Контактная информация:
- I_decision
- Сообщения: 5
- Зарегистрирован: 2016.04.16, 18:08
- Контактная информация: