diff options
Diffstat (limited to 'vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md')
-rw-r--r-- | vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md new file mode 100644 index 000000000..edd81937b --- /dev/null +++ b/vendor/smarty/smarty/docs/designers/language-modifiers/language-modifier-date-format.md @@ -0,0 +1,175 @@ +date\_format {#language.modifier.date.format} +============ + +This formats a date and time into the given +[`strftime()`](&url.php-manual;strftime) format. Dates can be passed to +Smarty as unix [timestamps](&url.php-manual;function.time), [DateTime +objects](&url.php-manual;class.DateTime), mysql timestamps or any string +made up of month day year, parsable by php\'s +[`strtotime()`](&url.php-manual;strtotime). Designers can then use +`date_format` to have complete control of the formatting of the date. If +the date passed to `date_format` is empty and a second parameter is +passed, that will be used as the date to format. + + Parameter Position Type Required Default Description + -------------------- -------- ---------- ------------ ------------------------------------------------- + 1 string No \%b %e, %Y This is the format for the outputted date. + 2 string No n/a This is the default date if the input is empty. + +> **Note** +> +> Since Smarty-2.6.10 numeric values passed to `date_format` are +> *always* (except for mysql timestamps, see below) interpreted as a +> unix timestamp. +> +> Before Smarty-2.6.10 numeric strings that where also parsable by +> `strtotime()` in php (like `YYYYMMDD`) where sometimes (depending on +> the underlying implementation of `strtotime()`) interpreted as date +> strings and NOT as timestamps. +> +> The only exception are mysql timestamps: They are also numeric only +> and 14 characters long (`YYYYMMDDHHMMSS`), mysql timestamps have +> precedence over unix timestamps. + +> **Note** +> +> `date_format` is essentially a wrapper to PHP\'s +> [`strftime()`](&url.php-manual;strftime) function. You may have more +> or less conversion specifiers available depending on your system\'s +> [`strftime()`](&url.php-manual;strftime) function where PHP was +> compiled. Check your system\'s manpage for a full list of valid +> specifiers. However, a few of the specifiers are emulated on Windows. +> These are: %D, %e, %h, %l, %n, %r, %R, %t, %T. + + + <?php + + $config['date'] = '%I:%M %p'; + $config['time'] = '%H:%M:%S'; + $smarty->assign('config', $config); + $smarty->assign('yesterday', strtotime('-1 day')); + + ?> + + + +This template uses [`$smarty.now`](#language.variables.smarty.now) to +get the current time: + + + {$smarty.now|date_format} + {$smarty.now|date_format:"%D"} + {$smarty.now|date_format:$config.date} + {$yesterday|date_format} + {$yesterday|date_format:"%A, %B %e, %Y"} + {$yesterday|date_format:$config.time} + + + +This above will output: + + + Jan 1, 2022 + 01/01/22 + 02:33 pm + Dec 31, 2021 + Monday, December 1, 2021 + 14:33:00 + + + +`date_format` conversion specifiers: + +- \%a - abbreviated weekday name according to the current locale + +- \%A - full weekday name according to the current locale + +- \%b - abbreviated month name according to the current locale + +- \%B - full month name according to the current locale + +- \%c - preferred date and time representation for the current locale + +- \%C - century number (the year divided by 100 and truncated to an + integer, range 00 to 99) + +- \%d - day of the month as a decimal number (range 01 to 31) + +- \%D - same as %m/%d/%y + +- \%e - day of the month as a decimal number, a single digit is + preceded by a space (range 1 to 31) + +- \%g - Week-based year within century \[00,99\] + +- \%G - Week-based year, including the century \[0000,9999\] + +- \%h - same as %b + +- \%H - hour as a decimal number using a 24-hour clock (range 00 + to 23) + +- \%I - hour as a decimal number using a 12-hour clock (range 01 + to 12) + +- \%j - day of the year as a decimal number (range 001 to 366) + +- \%k - Hour (24-hour clock) single digits are preceded by a blank. + (range 0 to 23) + +- \%l - hour as a decimal number using a 12-hour clock, single digits + preceded by a space (range 1 to 12) + +- \%m - month as a decimal number (range 01 to 12) + +- \%M - minute as a decimal number + +- \%n - newline character + +- \%p - either \`am\' or \`pm\' according to the given time value, or + the corresponding strings for the current locale + +- \%r - time in a.m. and p.m. notation + +- \%R - time in 24 hour notation + +- \%S - second as a decimal number + +- \%t - tab character + +- \%T - current time, equal to %H:%M:%S + +- \%u - weekday as a decimal number \[1,7\], with 1 representing + Monday + +- \%U - week number of the current year as a decimal number, starting + with the first Sunday as the first day of the first week + +- \%V - The ISO 8601:1988 week number of the current year as a decimal + number, range 01 to 53, where week 1 is the first week that has at + least 4 days in the current year, and with Monday as the first day + of the week. + +- \%w - day of the week as a decimal, Sunday being 0 + +- \%W - week number of the current year as a decimal number, starting + with the first Monday as the first day of the first week + +- \%x - preferred date representation for the current locale without + the time + +- \%X - preferred time representation for the current locale without + the date + +- \%y - year as a decimal number without a century (range 00 to 99) + +- \%Y - year as a decimal number including the century + +- \%Z - time zone or name or abbreviation + +- \%% - a literal \`%\' character + +See also [`$smarty.now`](#language.variables.smarty.now), +[`strftime()`](&url.php-manual;strftime), +[`{html_select_date}`](#language.function.html.select.date) and the +[date tips](#tips.dates) page. |