将荷兰时间字符串转换为时间戳php

将荷兰时间字符串转换为时间戳php,php,Php,我有一个函数,可以读取第一行文件中的日期。此日期的荷兰语格式如下:2 mei 2013或28 jun.2013 它需要将日期字符串转换为时间戳,但无论我如何尝试,它都不能用于meimoths或任何其他荷兰语命名的月份。这是我目前拥有的代码(原始函数的代码要多一些,但这就是它出错的地方) 下面是使用此函数时的一些结果: $timestamp = getTimestamp('28 jun. 2013') //1372370400 $timestamp2 = getTimestamp('2 mei 2

我有一个函数,可以读取第一行文件中的日期。此日期的荷兰语格式如下:
2 mei 2013
28 jun.2013

它需要将日期字符串转换为时间戳,但无论我如何尝试,它都不能用于
mei
moths或任何其他荷兰语命名的月份。这是我目前拥有的代码(原始函数的代码要多一些,但这就是它出错的地方)

下面是使用此函数时的一些结果:

$timestamp = getTimestamp('28 jun. 2013') //1372370400
$timestamp2 = getTimestamp('2 mei 2013') // false
但是,当我把这个代码放到函数中

echo strftime('%e %b %Y', 1367445600)."\n";
它打印“2013年12月2日”

我如何告诉php不仅要用荷兰语格式化日期时间字符串,还要用荷兰语读取它

=======================

多亏了下面的一些解释,我现在有了代码(这是完整的函数)

strotime
不符合设置的区域设置。 事实上,它在美国的描述是:“将任何英文文本datetime描述解析为Unix时间戳”

解决方案

  • 您可以使用since PHP5,它确实尊重语言环境(比如
    strftime
    ),但是在php网站上有一些关于使用它的警告

  • 您可以编写一个函数,将荷兰月份名称替换为英文月份名称,然后调用
    strotime


在不创建自己的日期解析器的情况下,本机PHP函数只使用英文日期

但是,PHP有一个国际dateformatter扩展。你可以安装这个插件,然后将能够解析非英语日期


谢谢你的解释。我已经在函数中添加了翻译功能,并将使用工作代码更新我的问题。
echo strftime('%e %b %Y', 1367445600)."\n";
public function getReportDate(){
    $mothsTranslated = array('mrt'=> 'mar','mei'=>'may', 'okt'=>'oct');
    $content = file($this->file);
    $line = $content[0];
    $header = str_getcsv($line, $this->delimiter);
    $date = str_replace('.', '', $header[1]);
    foreach ($mothsTranslated as $dutch => $eng) {
        if(strpos($date, $dutch) !== false){
            $date = str_replace($dutch, $eng, $date);
        }
    }
    $timestamp = strtotime($date);

    return $timestamp;
}