我正在处理一个返回变量的XML文档,并且由于某种原因在xml返回时,时间戳的格式如下... 20180606T110000
...为什么有人会像那样格式化它对我没有意义;然而,它是我必须与之合作的。 IT格式为YYYYMMDD,T是日期和时间之间的分割,HHMMSS。 IT设置为24小时制,我还需要转换为12小时制,上午/下午
我需要格式化为06/06/2018 11:00:00 AM。
有没有办法通过日期格式(我知道如何使用date()但我不知道如何以格式化的方式引入时间戳)或甚至将其分成
$year = xxxx
$month = xx
$day = $xx
$Hour=xx
etc. etc. etc.
如果需要的话。
我简要地看了一下php的格式(date_create_from_format('j-M-Y', '15-Feb-2009')
)创建的日期,但并不完全理解它是如何工作的。
我也考虑过分裂。我也看过chunk_split和wordwrap,但它的字符数量甚至都不多,因此创建起来很复杂。
有什么想法吗?
答案 0 :(得分:2)
您正在使用的格式是" XMLRPC(Compact)"格式。这完全由PHP支持(您可以看到支持的格式列表here)。要获得所需内容,只需使用strtotime()和date()的组合。
it 'will throw auth token error' do
create :logged_in_session, session_identifier: logged_in_session_cookie, auth_token: logged_in_auth_token, updated_at: 1.week.ago
Ccms::ClientSession.first.update(AuthToken: '1')
expect {post :create, params: valid_credentials, session: {}}.to raise_error(ActionController::InvalidAuthenticityToken)
end
答案 1 :(得分:1)
您可以使用PHP DateTime以任何格式解析日期时间字符串。请查看以下链接中的参数格式,以了解" Ymd \ THis"部分有效:http://php.net/manual/en/datetime.createfromformat.php
<?php
$time = "20180606T110000";
$date = DateTime::createFromFormat("Ymd\THis", $time);
// 06/06/2018 11:00:00 AM.
echo $date->format("d/m/Y h:i:s A");