我需要将从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
我的错在哪里?
答案 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
方法第二个参数中使用,以获得您需要的格式。