我从JSON响应中获取以下日期格式,并希望更好地格式化,但我有点不确定如何。
当前回复:Wed Mar 02 03:00:00 +1100 2016
所需回应:2016年3月2日
当前用于输出的PHP:
$purchase_data['verify-purchase']['supported_until']
答案 0 :(得分:1)
这里有一些特殊格式,但在阅读手册时可能。 也照顾时区...
<?php
//custom function
function reformatDate( $old, $correction ) {
// makes it a number of seconds since 1970…
$old_date_timestamp = strtotime( $old );
//formats again as string
return date( 'jS F Y', $old_date_timestamp + $correction );
}
//Input: Wed Mar 02 03:00:00 +1100 2016
//timezone needs to be taken care of
print reformatDate(
"Wed Mar 02 03:00:00 +1100 2016", //here you put your input variable
11*60*60 // here 11h, but maybe the difference of timezones needs to be changed – only you will know after edge cases ;)
);
//desired output: 2nd of March 2016 – check
?>
要做得更好,你可以从当地环境询问你自己的时区。 date
也可以帮助你,或者你通过timezone_offset_get
自动执行...后者更加棘手,因为它在未设置之前会引发错误。
答案 1 :(得分:0)
试试这个:
function persistence(num, counter = 0) {
if (num.toString().length != 1) {
num = num.toString().split("").filter(Number).reduce((a, b) => a * b);
return persistence(num, ++counter);
} else {
return counter;
}
}
答案 2 :(得分:-1)
有人在这里发布了答案,但由于某种原因被删除了,但是我使用了他们的一些解决方案并进行了调整并创建了一个函数,因此对于其他需要处理以这种方式格式化的返回日期的人来说,这就是我所做的
function dateFormat($date){
$current_date = $date;
return date("jS", strtotime($current_date) ) . ' of ' . date("F Y", strtotime($current_date) );
}
然后就这样称呼它......
dateFormat($purchase_data['verify-purchase']['supported_until']);
输出来自:
Wed Mar 02 03:00:00 +1100 2016
要:
2016年3月1日
实际上现在注意到写这个,它是第一个而不是第二个?
<强>已更新强>
更新@vv01f的回答以更正日期,这是最终结果
function dateFormat( $old, $correction ) {
$old_date_timestamp = strtotime( $old );
return date( 'jS F Y', $old_date_timestamp + $correction );
}
这样称呼它......
dateFormat($purchase_data['verify-purchase']['supported_until'], 11*60*60);