【问题标题】:Converting a German date to Y-m-d does not work?将德国日期转换为 Y-m-d 不起作用?
【发布时间】:2012-02-28 11:48:20
【问题描述】:

我有一个这样的日期:2. 2012 年 2 月

我想把它转换成2012-02-02,所以我写了这段代码:

$date = '2. Februar 2012';
$date = date('Y-m-d', $date);

$date 变量要么是空的,要么是之后的 1970-01-01,有什么问题或缺失?

注意:日期是德语格式,所以不是二月,而是二月。我通过这种方式从日期选择器中获取日期。

谢谢!

【问题讨论】:

标签: php date


【解决方案1】:

这样使用:

$date = '2. February 2012';
$date = strtotime($date);
$date = date('Y-m-d', $date);

echo $date;

【讨论】:

  • @EOB 哦,对不起,我还以为是拼写错误。那是什么语言?
【解决方案2】:

您可以使用 *strtotime 并且还需要在 strtotime 函数中传递有效的日期格式,因为您的 $date 变量没有有效的格式。

您有 . 和拼写错误的月份名称。你必须在传递strtotime 之前清除那些。我为此使用了str_replace

$date = '2. Februar 2012';
$date = date('Y-m-d', strtotime(str_replace('Februar','february',str_replace('.','', $date))));

【讨论】:

  • 不,它没有拼错,它的德语......在德语中它的Februar。日期来自日历控件。
  • @EOB:它不是 strtotime 接受的有效日期格式。您必须将其更改为 february 或有效的日期格式。你可以在这里看到php.net/manual/en/datetime.formats.date.php
  • 是的,可能是这样,但是本地日期呢?一定有解决办法?
  • @EOB:我认为没有,除非您使用 PHP 手册页上列出的有效日期格式。还有一个 PHP DateTime class,在您同意有效的日期格式之前,我认为它对您没有多大帮助。
【解决方案3】:

date() php 中的函数需要第一个参数为字符串。在你的例子中没问题。 Seconds 参数是可选的,它应该是整数,带有您要转换的时间戳。

参考:http://php.net/manual/en/function.date.php

【讨论】:

    【解决方案4】:

    使用strtotime

    putenv('LC_ALL=de_DE');
    putenv('LANG=de'); 
    setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
    
    $date = '2. Februar 2012';
    $date = date('Y-m-d', strtotime($date));
    

    【讨论】:

      【解决方案5】:

      使用strtotime()

      strtotime("2 February 2012") will return the unix timestamps.
      
      mktime(0, 0, 0, 2, 2, 2012) will return the same unix timestamps.
      

      如果你能跑

      $ts = mktime(0, 0, 0, 2, 2, 2012);
      echo date("Y-m-d H:i:s", $ts); // output 2012-02-02 00:00:00  
      
      You can run the following too
      
      $ts = strtotime("2 February 2012");
      echo date("Y-m-d H:i:s", $ts); // output 2012-02-02 00:00:00 
      

      【讨论】:

        猜你喜欢
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-21
        • 2021-05-16
        • 2021-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多