仅将年份转换为PHP中的日期时间

时间:2013-11-23 11:56:03

标签: php mysql date datetime

我目前正在使用返回日期的API。这些日期永远不会是相同的格式。例如;我有时会得到像1987/10/12那样的日期,或者有时它只会返回一年。

我尝试将此日期转换为可导入我的mysql数据库的格式,但它始终使用当前时间戳自动填充日期。

$item['released'] = "1989";
var_dump(strtotime($item['released']));

这将返回1989年11月23日星期四,格林威治标准时间11:53:53(在当前时间戳上添加正确年份的日/月/年和时间)

为什么会这样,我怎么知道它必须像1989/01/01 00:00:00 或者我应该以另一种方式看待这个?

由于

1 个答案:

答案 0 :(得分:1)

从您的问题和评论(“我只是没有返回它不可用的月份或日期。它以美国格式btw”)我会假设,可能的日期是:

  • 1987年12月10日
  • 12分之1987
  • 1987

正确?

如果是这样,你可以使用类似的东西:

    $arr = explode('/', $input);
    $modifiedInput = $arr[0] . '/' .
            ((isset($arr[1])) ? $arr[1] : '01') . '/' .
            ((isset($arr[2])) ? $arr[2] : '01') . 
            ' 00:00:00';

$ modifiedInput将为'1987/12/10 00:00:00'作为第一个可能的输入,'1987/12/01 00:00:00'为第2,'1987/01/01 00:00 :00'代表第3名。

如果API可能返回尾部斜杠(例如'1987/12 /'),则需要修改三元运算符中的条件......