W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
將日期和時(shí)間格式化成strftime()
的格式。 時(shí)間可以是unix的 時(shí)間戳, DateTime 對(duì)象, mysql時(shí)間戳,或者月日年格式的字符串,與PHP函數(shù)strtotime()
類似。 模板設(shè)計(jì)者可以對(duì)date_format
的格式有完全的控制。 如果傳遞到date_format
的時(shí)間為空, 而第二個(gè)參數(shù)傳遞了值,那么第二個(gè)參數(shù)將作為需要格式化的時(shí)間。
參數(shù)順序 | 類型 | 必選參數(shù) | 默認(rèn)值 | 說明 |
---|---|---|---|---|
1 | string | No | %b %e, %Y | 輸出時(shí)間的格式定義 |
2 | string | No | n/a | 如果輸入為空,則作為默認(rèn)時(shí)間。 |
從Smarty-2.6.10開始,給date_format
傳遞 數(shù)字值將一直被當(dāng)作unix時(shí)間戳(除了mysql時(shí)間戳,看下文)。
在Smarty-2.6.10之前,數(shù)字值(如 YYYYMMDD
)使用了php函數(shù)strtotime()
來進(jìn)行處理, 所以有時(shí)候值會(huì)被看作時(shí)間字符串而不是時(shí)間戳(取決于strtotime()
的實(shí)現(xiàn))。
唯一的例外mysql時(shí)間戳:14位數(shù)字值(YYYYMMDDHHMMSS
), mysql時(shí)間戳比unix時(shí)間戳更優(yōu)先匹配。
date_format
是派生于PHP函數(shù) strftime()
的wrapper。 在PHP編譯時(shí)strftime()
的支持格式的數(shù)量將會(huì)受到系統(tǒng)影響。 請系統(tǒng)的說明找出完整的格式列表。 然而,部分格式是模擬了windows的行為,如 %D, %e, %h, %l, %n, %r, %R, %t, %T。
Example 5.8. date_format
<?php $config['date'] = '%I:%M %p'; $config['time'] = '%H:%M:%S'; $smarty->assign('config', $config); $smarty->assign('yesterday', strtotime('-1 day')); ?>
模板使用了 $smarty.now
取得當(dāng)前的時(shí)間:
{$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}
輸出是:
Jan 1, 2022 01/01/22 02:33 pm Dec 31, 2021 Monday, December 1, 2021 14:33:00
date_format支持格式:
%a - 當(dāng)前區(qū)域星期幾的簡寫
%A - 當(dāng)前區(qū)域星期幾的全稱
%b - 當(dāng)前區(qū)域月份的簡寫
%B - 當(dāng)前區(qū)域月份的全稱
%c - 當(dāng)前區(qū)域首選的日期時(shí)間表達(dá)
%C - 世紀(jì)值(年份除以 100 后取整,范圍從 00 到 99)
%d - 月份中的第幾天,十進(jìn)制數(shù)字(范圍從 01 到 31)
%D - 和 %m/%d/%y 一樣
%e - 月份中的第幾天,十進(jìn)制數(shù)字,一位的數(shù)字前會(huì)加上一個(gè)空格(范圍從 ' 1' 到 '31')
%g - 和 %G 一樣,但是沒有世紀(jì)
%G - 4 位數(shù)的年份
%h - 和 %b 一樣
%H - 24 小時(shí)制的十進(jìn)制小時(shí)數(shù)(范圍從 00 到 23)
%I - 12 小時(shí)制的十進(jìn)制小時(shí)數(shù)(范圍從 00 到 12)
%j - 年份中的第幾天,十進(jìn)制數(shù)(范圍從 001 到 366)
%k - 小時(shí),24 小時(shí)格式,沒有前導(dǎo)零
%l - 小時(shí),12 小時(shí)格式,沒有前導(dǎo)零
%m - 十進(jìn)制月份(范圍從 01 到 12)
%M - 十進(jìn)制分鐘數(shù)
%n - 換行符
%p - 根據(jù)給定的時(shí)間值為 `am' 或 `pm',或者當(dāng)前區(qū)域設(shè)置中的相應(yīng)字符串
%r - 用 a.m. 和 p.m. 符號(hào)的時(shí)間
%R - 24 小時(shí)符號(hào)的時(shí)間
%S - 十進(jìn)制秒數(shù)
%t - 制表符
%T - 當(dāng)前時(shí)間,和 %H:%M:%S 一樣
%u - 星期幾的十進(jìn)制數(shù)表達(dá) [1,7],1 表示星期一
%U - 本年的第幾周,從第一周的第一個(gè)星期天作為第一天開始
%V - 本年第幾周的 ISO 8601:1988 格式,范圍從 01 到 53,第 1 周是本年第一個(gè)至少還有 4 天的星期,星期一作為每周的第一天。(用 %G 或者 %g 作為指定時(shí)間戳相應(yīng)周數(shù)的年份組成。)
%w - 星期中的第幾天,星期天為 0
%W - 本年的第幾周數(shù),從第一周的第一個(gè)星期一作為第一天開始
%x - 當(dāng)前區(qū)域首選的時(shí)間表示法,不包括時(shí)間
%X - 當(dāng)前區(qū)域首選的時(shí)間表示法,不包括日期
%y - 沒有世紀(jì)數(shù)的十進(jìn)制年份(范圍從 00 到 99)
%Y - 包括世紀(jì)數(shù)的十進(jìn)制年份
%Z - 時(shí)區(qū)名或縮寫
%% - 文字上的 `%' 字符
參見 $smarty.now
, strftime()
, {html_select_date}
和 時(shí)間技巧文章.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: