我正在嘗試在自定義代碼段中顯示 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;

精慕HU
TA貢獻1845條經驗 獲得超8個贊
event_date_end 以與其他字段不同的順序保存日期。不知道為什么這很重要,但也許它的保存方式與我正在使用的功能不兼容。
get_field('event_date') 返回“20200825” get_field('event_date_end') 返回“27/08/2020”
我可以在用于創建這些字段的自定義字段插件中更改此設置,現在它可以工作了。
- 2 回答
- 0 關注
- 160 瀏覽
添加回答
舉報
0/150
提交
取消