亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

date_i18n 函數顯示今天的日期而不是提供的日期

date_i18n 函數顯示今天的日期而不是提供的日期

PHP
瀟湘沐 2023-10-15 16:42:06
我正在嘗試在自定義代碼段中顯示 WordPress 中從開始日期到結束日期的日期范圍,以列出我們網站上的事件。有兩個與此問題相關的自定義字段:event_date:顯示事件的開始日期(使用日期選擇器)event_date_end:顯示事件的結束日期(使用日期選擇器,僅當事件超過一天時使用)我正在使用下面的代碼,它對我來說看起來很正確,但由于某種原因,第二個日期設置為今天的日期,而不是 event_date_end 字段中的日期。如果我僅顯示 event_date_end (例如 echo get_field('event_date_end') ),則會顯示正確的日期,但當嘗試更改其顯示方式時,由于某種原因,日期會發生變化。知道什么可能導致這種情況嗎?整個事情是一個較長片段的一部分,所以也許錯誤超出了這個范圍,但我有一種感覺,我沒有正確使用 i18n。$eventduration = date_i18n("d", strtotime(get_field('event_date')))."".date_i18n("M", strtotime(get_field('event_date')))." -".date_i18n("d", strtotime(get_field('event_date_end')))."".date_i18n("M", strtotime(get_field('event_date_end')))."; echo $eventduration;#Should display something like "25 Aug - 28 Aug" but instead shows "25 Aug - 18 Aug"
查看完整描述

2 回答

?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

如果您傳遞一個日期作為/分隔符,strtotime()它將采用美國日期格式。


日期選擇器中的日期采用邏輯格式。因此,您必須將 更改/為 a -,然后strtotime()才能正常使用此格式


$ede = str_replace('/', '-', get_field('event_date_end'));


$eventduration = date_i18n("d M", strtotime(get_field('event_date')))

                 ." - ".

                 date_i18n("d M", strtotime($ede)); 

echo $eventduration;


查看完整回答
反對 回復 2023-10-15
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

event_date_end 以與其他字段不同的順序保存日期。不知道為什么這很重要,但也許它的保存方式與我正在使用的功能不兼容。

get_field('event_date') 返回“20200825” get_field('event_date_end') 返回“27/08/2020”

我可以在用于創建這些字段的自定義字段插件中更改此設置,現在它可以工作了。


查看完整回答
反對 回復 2023-10-15
  • 2 回答
  • 0 關注
  • 160 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號