我正在运行一个多语言的WordPress网站,我需要将自定义帖子类型的元数值与当前日期进行比较。
在英语中,我将用户输入的start_date
与系统时间进行比较时相当直接:
$postStartDate = strtotime(get_field('start_date'));
$currDate = strtotime(date('F j, Y'));
if ($postStartDate > $currDate):
// Show the post
endif;
我无法使用WordPress内置的发布日期,因为我的客户提前设置了帖子,它们应该在元start_date
过去之前一直有效。
然而,当我尝试运行与法语类似的东西时,它失败了,因为strtotime()
期望英语。公平。所以,我读了一下关于setlocale()
和strftime()
的内容,最后尝试了这样的事情:
$frenchDate = strftime("%d %b %Y", strtotime(get_field('start_date')));
当然,这也失败了,因为strtotime()
无法理解'Janvier'与'1月'等等,因此它不会立即启动。在这种情况下,strftime()
只是在1970年1月1日吐出。
这不是法国服务器环境,只是一个双语网站。
将法语日期字符串与当前系统日期进行比较的最佳方法是什么?
答案 0 :(得分:0)
当无法更改整体网站架构时,我能想出的最佳解决方案是创建一个关联数组,将法语字符串映射回英语Node={}
Node[(6,6)]=[(6,5),(6,7),(5,6),(7,6)]
Node[(1,3)]=[(1,4),(2,3)]
以理解:
strtotime()
小写字符串然后取法语月份并将其替换为var monthMap = {
'janvier' => 'january',
...
}
以创建英语日期。