加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2021-08-28 03:47:25 所属栏目:大数据 来源: https://www.jb51.cc
导读:我有一个函数,可以在第一行的文件中读出日期.这个日期格式化为荷兰像这样的2 mei 2013或28 jun. 2013 它需要将日期字符串转换为时间戳,但无论我尝试它,都不适用于mei飞蛾或任何其他荷兰月份.这是我目前的代码(原始函数是更多的代码,但这是它出错的地方) func

我有一个函数,可以在第一行的文件中读出日期.这个日期格式化为荷兰像这样的2 mei 2013或28 jun. 2013

它需要将日期字符串转换为时间戳,但无论我尝试它,都不适用于mei飞蛾或任何其他荷兰月份.这是我目前的代码(原始函数是更多的代码,但这是它出错的地方)

function getTimestamp($date){
    date_default_timezone_set('Europe/Amsterdam');
    setlocale(LC_ALL, 'nl_NL');
    $timestamp = strtotime($date);
    return $timestamp;
}

现在,使用此函数时会出现一些结果:

$timestamp = getTimestamp('28 jun. 2013') //1372370400
$timestamp2 = getTimestamp('2 mei 2013') // false

但是,当我把这个代码放在函数中时

echo strftime('%e %b %Y', 1367445600)."n";

它打印’2 mei 2013′

我怎么能告诉PHP不仅用荷兰语格式化日期时间字符串,还用荷兰语读取它?

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

感谢下面的一些解释,我现在有代码工作(这是完整的功能)

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;
}

解决方法:

As others found out,strtotime不遵守设置的区域设置.
实际上,它在manual州的描述中:“将任何英文文本日期时间描述解析为Unix时间戳”

解决方案

>你可以使用0700,因为PHP5尊重语言环境(如strftime),但有一些关于在PHP网站上使用它的警告.
>您可以编写一个函数,将荷兰月份名称替换为英语月份名称,然后调用strtotime.

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读