Skip to content

Instantly share code, notes, and snippets.

@hissy
Last active March 7, 2024 21:53
Show Gist options
  • Save hissy/a9ad1f265bc56a54f2724b92f8986fd7 to your computer and use it in GitHub Desktop.
Save hissy/a9ad1f265bc56a54f2724b92f8986fd7 to your computer and use it in GitHub Desktop.
#concrete5 Complete usage and output of Date Helper to localize date time format
$dh = Core::make('helper/date');
Code en_US ja_JP it_IT ru_RU zh_CN
echo $dh->formatDateTime($date); 10/31/19, 5:06 PM 2019/10/31 17:06 31/10/19, 17:06 31.10.2019, 17:06 2019/10/31 下午5:06
echo $dh->formatDateTime($date, true); Oct 31, 2019, 5:06 PM 2019/10/31 17:06 31 ott 2019, 17:06 31 окт. 2019 г., 17:06 2019年10月31日 下午5:06
echo $dh->formatDateTime($date, false, true); 10/31/19, 5:06:38 PM 2019/10/31 17:06:38 31/10/19, 17:06:38 31.10.2019, 17:06:38 2019/10/31 下午5:06:38
echo $dh->formatDateTime($date, true, true); Oct 31, 2019, 5:06:38 PM 2019/10/31 17:06:38 31 ott 2019, 17:06:38 31 окт. 2019 г., 17:06:38 2019年10月31日 下午5:06:38
echo $dh->formatTime($date); 5:06 PM 17:06 17:06 17:06 下午5:06
echo $dh->formatTime($date, true); 5:06:38 PM 17:06:38 17:06:38 17:06:38 下午5:06:38
echo $dh->formatDate($date, 'full'); Thursday, October 31, 2019 2019年10月31日木曜日 giovedì 31 ottobre 2019 четверг, 31 октября 2019 г. 2019年10月31日星期四
echo $dh->formatDate($date, 'long'); October 31, 2019 2019年10月31日 31 ottobre 2019 31 октября 2019 г. 2019年10月31日
echo $dh->formatDate($date, 'medium'); Oct 31, 2019 2019/10/31 31 ott 2019 31 окт. 2019 г. 2019年10月31日
echo $dh->formatDate($date, 'short'); 10/31/19 2019/10/31 31/10/19 31.10.2019 2019/10/31
echo $dh->formatDate($date, '~Bh'); 5 in the afternoon 夕方5時 5 del pomeriggio 5 дня 下午5时
echo $dh->formatDate($date, '~Bhm'); 5:06 in the afternoon 夕方5:06 5:06 del pomeriggio 5:06 дня 下午5:06
echo $dh->formatDate($date, '~Bhms'); 5:06:38 in the afternoon 夕方5:06:38 5:06:38 del pomeriggio 5:06:38 дня 下午5:06:38
echo $dh->formatDate($date, '~d'); 31 31日 31 31 31日
echo $dh->formatDate($date, '~E'); Thu gio чт 周四
echo $dh->formatDate($date, '~EBhm'); Thu 5:06 in the afternoon 夕方5:06 (木) gio 5:06 del pomeriggio чт, 5:06 дня 周四下午5:06
echo $dh->formatDate($date, '~EBhms'); Thu 5:06:38 in the afternoon 夕方5:06:38 (木) gio 5:06:38 del pomeriggio чт, 5:06:38 дня 周四下午5:06:38
echo $dh->formatDate($date, '~Ed'); 31 Thu 31日(木) gio 31 чт, 31 31日周四
echo $dh->formatDate($date, '~EEEEd'); 31 Thursday 31日木曜日 giovedì 31 четверг, 31 31日星期四
echo $dh->formatDate($date, '~Ehm'); Thu 5:06 PM 午後5:06 (木) gio 5:06 PM чт 5:06 PM 周四下午5:06
echo $dh->formatDate($date, '~EHm'); Thu 17:06 17:06 (木) gio 17:06 чт 17:06 周四17:06
echo $dh->formatDate($date, '~Ehms'); Thu 5:06:38 PM 午後5:06:38 (木) gio 5:06:38 PM чт 5:06:38 PM 周四下午5:06:38
echo $dh->formatDate($date, '~EHms'); Thu 17:06:38 17:06:38 (木) gio 17:06:38 чт 17:06:38 周四17:06:38
echo $dh->formatDate($date, '~Gy'); 2019 AD 西暦2019年 2019 d.C. 2019 г. н. э. 公元2019年
echo $dh->formatDate($date, '~GyMMM'); Oct 2019 AD 西暦2019年10月 ott 2019 d.C. окт. 2019 н. э. 公元2019年10月
echo $dh->formatDate($date, '~GyMMMd'); Oct 31, 2019 AD 西暦2019年10月31日 31 ott 2019 d.C. 31 окт. 2019 г. н. э. 公元2019年10月31日
echo $dh->formatDate($date, '~GyMMMEd'); Thu, Oct 31, 2019 AD 西暦2019年10月31日(木) gio 31 ott 2019 d.C. чт, 31 окт. 2019 г. н. э. 公元2019年10月31日周四
echo $dh->formatDate($date, '~GyMMMEEEEd'); Thursday, Oct 31, 2019 AD 西暦2019年10月31日木曜日 giovedì 31 ott 2019 d.C. четверг, 31 окт. 2019 г. н. э. 公元2019年11日星期四
echo $dh->formatDate($date, '~h'); 5 PM 午後5時 5 PM 5 PM 下午5时
echo $dh->formatDate($date, '~H'); 17 17時 17 17 17时
echo $dh->formatDate($date, '~hm'); 5:06 PM 午後5:06 5:06 PM 5:06 PM 下午5:06
echo $dh->formatDate($date, '~Hm'); 17:06 17:06 17:06 17:06 17:06
echo $dh->formatDate($date, '~hms'); 5:06:38 PM 午後5:06:38 5:06:38 PM 5:06:38 PM 下午5:06:38
echo $dh->formatDate($date, '~Hms'); 17:06:38 17:06:38 17:06:38 17:06:38 17:06:38
echo $dh->formatDate($date, '~hmsv'); 5:06:38 PM Japan Time 午後5:06:38 JST 5:06:38 PM Ora Giappone 5:06:38 PM Япония 日本时间 下午5:06:38
echo $dh->formatDate($date, '~Hmsv'); 17:06:38 Japan Time 17:06:38 JST 17:06:38 Ora Giappone 17:06:38 Япония 日本时间 17:06:38
echo $dh->formatDate($date, '~hmv'); 5:06 PM Japan Time 午後5:06 JST 5:06 PM Ora Giappone 5:06 PM Япония 日本时间 下午5:06
echo $dh->formatDate($date, '~Hmv'); 17:06 Japan Time 17:06 JST 17:06 Ora Giappone 17:06 Япония 日本时间 17:06
echo $dh->formatDate($date, '~M'); 10 10月 10 10 10月
echo $dh->formatDate($date, '~Md'); 10/31 10/31 31/10 31.10 10/31
echo $dh->formatDate($date, '~MEd'); Thu, 10/31 10/31(木) gio 31/10 чт, 31.10 10/31周四
echo $dh->formatDate($date, '~MEEEEd'); Thursday, 10 31 10/31木曜日 giovedì 31 10 четверг, 31 10 10月31日星期四
echo $dh->formatDate($date, '~MMM'); Oct 10月 ott окт. 10月
echo $dh->formatDate($date, '~MMMd'); Oct 31 10月31日 31 ott 31 окт. 10月31日
echo $dh->formatDate($date, '~MMMEd'); Thu, Oct 31 10月31日(木) gio 31 ott чт, 31 окт. 10月31日周四
echo $dh->formatDate($date, '~MMMEEEEd'); Thursday, Oct 31 10月31日木曜日 giovedì 31 ott четверг, 31 окт. 10月31日星期四
echo $dh->formatDate($date, '~MMMMd'); October 31 10月31日 31 ottobre 31 октября 10月31日
echo $dh->formatDate($date, '~ms'); 06:38 06:38 06:38 06:38 06:38
echo $dh->formatDate($date, '~y'); 2019 2019年 2019 2019 2019年
echo $dh->formatDate($date, '~yM'); 10/2019 2019/10 10/2019 10.2019 2019年10月
echo $dh->formatDate($date, '~yMd'); 10/31/2019 2019/10/31 31/10/2019 31.10.2019 2019/10/31
echo $dh->formatDate($date, '~yMEd'); Thu, 10/31/2019 2019/10/31(木) gio 31/10/2019 чт, 31.10.2019 г. 2019/10/31周四
echo $dh->formatDate($date, '~yMEEEEd'); Thursday, 10 31, 2019 2019/10/31木曜日 giovedì 31 10 2019 четверг, 31 10 2019 г. 2019年10月31日星期四
echo $dh->formatDate($date, '~yMM'); 10/2019 2019/10 10/2019 10.2019 2019年10月
echo $dh->formatDate($date, '~yMMd'); 10/31/2019 2019/10/31 31/10/2019 31.10.2019 2019/10/31
echo $dh->formatDate($date, '~yMMM'); Oct 2019 2019年10月 ott 2019 окт. 2019 г. 2019年10月
echo $dh->formatDate($date, '~yMMMd'); Oct 31, 2019 2019年10月31日 31 ott 2019 31 окт. 2019 г. 2019年10月31日
echo $dh->formatDate($date, '~yMMMEd'); Thu, Oct 31, 2019 2019年10月31日(木) gio 31 ott 2019 чт, 31 окт. 2019 г. 2019年10月31日周四
echo $dh->formatDate($date, '~yMMMEEEEd'); Thursday, Oct 31, 2019 2019年10月31日木曜日 giovedì 31 ott 2019 четверг, 31 окт. 2019 г. 2019年10月31日星期四
echo $dh->formatDate($date, '~yMMMM'); October 2019 2019年10月 ottobre 2019 октябрь 2019 г. 2019年10月
echo $dh->formatDate($date, '~yQQQ'); Q4 2019 2019/Q4 T4 2019 4-й кв. 2019 г. 2019年第4季度
echo $dh->formatDate($date, '~yQQQQ'); 4th quarter 2019 2019年第4四半期 4º trimestre 2019 4-й квартал 2019 г. 2019年第4季度
echo $dh->formatDate($date, '~yw-count-other'); week 44 of 2019 2019年第44週 settimana 44 del 2019 44-я неделя 2019 г. 2019年第44周
echo $dh->formatPrettyDate($date); Today 今日 Oggi Сегодня 今天
echo $dh->formatPrettyDateTime($date); Today at 4:56 PM 今日 16:56 Oggi alle 16:56 Сегодня 16:56 在今天 下午4:56
echo $dh->formatPrettyDateTime($date, true); Today at 4:56 PM 今日 16:56 Oggi alle 16:56 Сегодня 16:56 在今天 下午4:56
echo $dh->formatPrettyDateTime($date, true, true); Today at 4:56:39 PM 今日 16:56:39 Oggi alle 16:56:39 Сегодня 16:56:39 在今天 下午4:56:39
<?php
use Concrete\Core\Localization\Localization;
use Concrete\Core\Localization\Service\Date;
use Concrete\Core\Support\Facade\Facade;
$app = Facade::getFacadeApplication();
/** @var Date $dh */
$dh = $app->make('helper/date');
$date = new DateTime();
/** @var Localization $localization */
$localization = $app->make(Localization::class);
$formats = [
// Format keywords
'full', 'long', 'medium', 'short',
// Matching Skeletons
'~Bh', '~Bhm', '~Bhms', '~d', '~E', '~EBhm', '~EBhms', '~Ed', '~EEEEd', '~Ehm', '~EHm', '~Ehms', '~EHms',
'~Gy', '~GyMMM', '~GyMMMd', '~GyMMMEd', '~GyMMMEEEEd', '~h', '~H', '~hm', '~Hm', '~hms', '~Hms', '~hmsv',
'~Hmsv', '~hmv', '~Hmv', '~M', '~Md', '~MEd', '~MEEEEd', '~MMM', '~MMMd', '~MMMEd', '~MMMEEEEd', '~MMMMd',
'~ms', '~y', '~yM', '~yMd', '~yMEd', '~yMEEEEd', '~yMM', '~yMMd', '~yMMM', '~yMMMd', '~yMMMEd', '~yMMMEEEEd',
'~yMMMM', '~yQQQ', '~yQQQQ', '~yw-count-other',
];
$locales = [
'en_US', 'ja_JP', 'it_IT', 'ru_RU', 'zh_CN',
];
echo '| Code |';
foreach ($locales as $locale) {
echo ' ' . $locale . ' |';
}
echo PHP_EOL;
echo '| ---- |';
foreach ($locales as $locale) {
echo ' ---- |';
}
echo PHP_EOL;
echo '| echo $dh->formatDateTime($date); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatDateTime($date) . ' |';
}
echo PHP_EOL;
echo '| echo $dh->formatDateTime($date, true); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatDateTime($date, true) . ' |';
}
echo PHP_EOL;
echo '| echo $dh->formatDateTime($date, false, true); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatDateTime($date, false, true) . ' |';
}
echo PHP_EOL;
echo '| echo $dh->formatDateTime($date, true, true); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatDateTime($date, true, true) . ' |';
}
echo PHP_EOL;
echo '| echo $dh->formatTime($date); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatTime($date) . ' |';
}
echo PHP_EOL;
echo '| echo $dh->formatTime($date, true); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatTime($date, true) . ' |';
}
echo PHP_EOL;
foreach ($formats as $format) {
echo '| echo $dh->formatDate($date, \'' . $format . '\'); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatDate($date, $format) . ' |';
}
echo PHP_EOL;
}
$date = new DateTime('10 minutes ago');
echo '| echo $dh->formatPrettyDate($date); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatPrettyDate($date) . ' |';
}
echo PHP_EOL;
echo '| echo $dh->formatPrettyDateTime($date); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatPrettyDateTime($date) . ' |';
}
echo PHP_EOL;
echo '| echo $dh->formatPrettyDateTime($date, true); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatPrettyDateTime($date, true) . ' |';
}
echo PHP_EOL;
echo '| echo $dh->formatPrettyDateTime($date, true, true); |';
foreach ($locales as $locale) {
$localization->setLocale($locale);
echo ' ' . $dh->formatPrettyDateTime($date, true, true) . ' |';
}
echo PHP_EOL;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment