0

我需要将从 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

我的错在哪里?

4

2 回答 2

1

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

于 2013-05-17T13:18:02.033 回答
0

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

对于初学者,该date()函数期望第二个参数是时间戳(在此处阅读文档)

然后您需要将字符串解析为可用的日期格式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方法第二个参数中使用该时间戳以获得您需要的格式。

于 2013-05-17T13:27:12.797 回答