你好@ll和来自德国的问候,
也许我太盲目了,但我正在努力解决本地化问题。我希望有人有解决方案。
在一个函数中,我有一个德国日期字符串,今天就假设它:
$datestring = '3. März 2014'
其次,我有WP中使用的日期格式
$date_format = get_option( 'date_format' );
我想要获得的是从$ datestring获取有效的unix时间戳。
我尝试了几种不同的方法,比如strtotime,date_parse_from_format等,我甚至尝试通过setlocale设置语言环境。当然,将字符串解析为具有月份名称的数组并获得英语日期字符串会很容易,但我想为所有语言准备好这一点。
任何想法如何完成这项工作?非常感谢帮助。
答案 0 :(得分:0)
你需要使用mktime($ datestring)
并根据以下内容设置$ datestring变量:
http://pl1.php.net/manual/de/function.mktime.php
在wordpress中:
mktime(get_the_date("H"), get_the_date("i"), get_the_date("s"), get_the_date("n"), get_the_date("j"), get_the_date("Y"));
如果您需要转换上面显示的确切格式:
$datestring = '3. März 2014';
$dateelements = explode(" ", $datestring);
$day = rtrim($dateelements[0], ".");
$germanMonths = array(1 => "Januar", 2 => "Februar", 3 => "März", 4 => "April", 5 => "Mai", 6 => "Juni", 7 => "Juli", 8 => "August", 9 => "September", 10 => "Oktober " , 11 => "November", 12 => "Dezember");
$month = array_search($dateelements[1], $germanMonths);
$year = $dateelements[2];
$unixtimestamp = mktime(0,0,0,$month,$day,$year);
如果你在wp选项中有一个日期格式,$ datestring就是那种格式:
$dateformat = get_option('date_format');
echo $dateformat;
$date = date_create_from_format($dateformat, $datestring);
$new_format = date_format($date, 'm,d,Y');
$unixtimestamp = mktime(0,0,0,$new_format);
echo $unixtimestamp;