从2个分隔的字符串生成数据时间格式

时间:2013-05-17 13:15:35

标签: php datetime

我需要将从MySQL获得的日期/时间与以下格式进行比较:2013-05-17 15:07:29

在另一个数据库中,我将数据和时间分开并用符号表示:130998 081836

我已将这两个字符串连接起来只得到一个,并且我正在尝试将其转换为我想要的格式:

$dateTimeNmea = $array[9]." ".$array[1];          //  130998 081836
$dateTime = date("Y-m-d H:i:s", $dateTimeNmea);   //  1970-01-02 13:23:18

所以“它适用”格式,但值是错误的。可能是1998-09-13 08:18:36

我的错在哪里?

2 个答案:

答案 0 :(得分:1)

格式为siH dmy。尝试date_parse_from_format('siH dmy', $string)将其放入数组中。

答案 1 :(得分:0)

130998 081836不是date函数可以理解的日期格式。

对于初学者,date()函数需要第二个参数为时间戳(为其读取文档here

然后,您需要通过date_parse_from_format将字符串解析为可用的日期格式,最后解析为时间戳

这样的东西
$string = '130998 081836';
$date = date_parse_from_format('dmY His', $string);

$dateString = date('Y-m-d H:i:s', strtotime(vsprintf('%s-%s-%s %s:%s:%s', $date)));

var_dump($dateString); // var dump just for output/test

strtotime(vsprintf('%s-%s-%s %s:%s:%s', $date)将解析后的日期格式化为时间戳,然后可以在date方法第二个参数中使用,以获得您需要的格式。