Например, у меня есть эта строка даты на голландском языке:
wo, 14 mei 2014 09:42:16
Можно ли преобразовать его в временную метку? Я думал об использовании голландского языка в mktime()
, но это, конечно, возвращает FALSE.
Например, у меня есть эта строка даты на голландском языке:
wo, 14 mei 2014 09:42:16
Можно ли преобразовать его в временную метку? Я думал об использовании голландского языка в mktime()
, но это, конечно, возвращает FALSE.
Я бы предположил http://php.net/manual/en/function.strptime.php или http://php.net/manual/en/function.date-parse-from-format.php (для php > 5.3) в сочетании с setlocale решит проблему.
Вы можете использовать регулярные выражения для поиска ваших данных. Например :
$day = preg_replace('/^[a-zA-Z], (\d{1,2}) .$/', '$1', $date);
$year = preg_replace('/^[a-zA-Z]+, \d{1,2} [a-zA-Z]+ (\d{4}) .$/', '$1', $date);
$hour = preg_replace('/^[a-zA-Z]+, \d{1,2} [a-zA-Z]+ \d{4} (\d{2}):.$/', '$1', $date);
$minutes = preg_replace('/^[a-zA-Z]+, \d{1,2} [a-zA-Z]+ \d{4} \d{2}:(\d{2}):.$/', '$1', $date);
$seconds = preg_replace('/^[a-zA-Z]+, \d{1,2} [a-zA-Z]+ \d{4} \d{2}:\d{2}:(\d{2})$/', '$1', $date);
Для месяца вы можете получить название месяца, а затем использовать таблицу поиска.
Чтобы поиграть с регулярными выражениями: Debuggex
Редактировать:
Здесь вы можете получить все свои данные в одну строку:
$date = json_decode(preg_replace(
'/^([a-zA-Z]+), (\d{1,2}) ([a-zA-Z]+) (\d{4}) (\d{2}):(\d{2}):(\d{2})$/',
'{"day":"$2","month":"$3","year":"$4","hour":"$5","minutes":"$6","seconds":"$7"}',
$text_date);
Вот пример: http://sandbox.onlinephpfunctions.com/code/2e976e3813945877a8d096f42d089130e4ec
Используя источники, которые рекомендовал Mikk3lRo, я пришел к следующему решению:
setlocale(LC_TIME, 'nl_NL');
$format = '%a, %d %B %Y %H:%M:%S';
$strf = 'wo, 14 mei 2014 09:42:16';
$a = strptime($strf, $format);
$timestamp = mktime($a['tm_hour']+2, $a['tm_min'], $a['tm_sec'], $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
echo $timestamp;