将德语字符串转换为时间戳

时间:2017-02-08 21:30:14

标签: php

我有点害怕提出这个问题,因为我确信它已经在这里得到了解答,但不幸的是我找不到任何解决方案......

我的问题非常简单。我有一个像

这样的字符串
  

Freitag,17。Februar 2017 08:00

并且需要将其转换为时间戳或类似的时间,我可以在该时间进行操作(例如减去30小时)。 您可能会注意到该字符串是德语,因此我尝试使用strtotime()时无效。我绝对没有想法来解决这个问题。不幸的是,不能用英语获取字符串...:/

我很高兴有任何帮助!谢谢!

2 个答案:

答案 0 :(得分:1)

你看过Carbon了吗?似乎有很好的语言支持。 Viel gluck 。史蒂夫

答案 1 :(得分:1)

一个想法是翻译月份并使用date_parse_from_format

$month = [
'Januar' => 'january', 'Februar' => 'february', 'März' => 'march',
'Mai' => 'may', 'Juni' => 'june', 'Juli' => 'july', 'Oktober' => 'october',
'November' => 'november', 'Dezember' => 'december'];

$mres = date_parse_from_format('j. F Y H:i', strtr($str, $month));

(如果utf-8使用utf8_encode表示非ascii字)。然后使用mktime to generate timestamp

$timestamp = mktime($mres['hour'],  $mres['minute'], $mres['second'], 
                    $mres['month'], $mres['day'],    $mres['year']);

PHP demo at eval.in