在PHP中将一种日期格式转换为另一种格式


是否有一种简单的方法可以将一种日期格式转换为PHP中的另一种日期格式?


我有这个:


$old_date = date('y-m-d-h-i-s');            // works


$middle = strtotime($old_date);             // returns bool(false)


$new_date = date('Y-m-d H:i:s', $middle);   // returns 1970-01-01 00:00:00

但我当然希望它能够恢复当前的日期,而不是破解那天。我究竟做错了什么?


慕桂英546537
浏览 3949回答 4
4回答

宝慕林4294392

第二个参数date()需要是一个合适的时间戳(1970年1月1日以来的秒数)。您正在传递一个字符串,date()无法识别。您可以使用strtotime()将日期字符串转换为时间戳。但是,即使是strtotime()也无法识别y-m-d-h-i-s格式。PHP 5.3及以上使用DateTime::createFromFormat。它允许您指定一个精确的掩码 - 使用date()语法 - 来解析传入的字符串日期。PHP 5.2及更低版本您必须手动解析元素(年,月,日,小时,分钟,秒)substr()并将结果交给mktime(),这将构建一个时间戳。但那是很多工作!我建议使用strftime()可以理解的不同格式。strftime()理解 输入的任何日期the next time joe will slip on the ice。例如,这有效:$old_date = date('l, F d y h:i:s');              // returns Saturday, January 30 10 02:06:34$old_date_timestamp = strtotime($old_date);$new_date = date('Y-m-d H:i:s', $old_date_timestamp);   

牛魔王的故事

试试这个:$old_date = date('y-m-d-h-i-s');$new_date = date('Y-m-d H:i:s', strtotime($old_date));
打开App,查看更多内容
随时随地看视频慕课网APP