[英]format date and time output by adding 1 hour php
我正在写这个插件,它显示了一些战斗信息。 我不是专家,我正在学习。 当我打印战斗时间时,它显示为 2021-11-12 21: 15: 00.000000 我想将其更改为 2021-11-12 21:15 +1 小时然后 2021-11-12 22:15 PS 日期是一个事件,可以随着时间而改变。 我能怎么做? 有人帮我谢谢`
// If this file is access directly, abort!!!
defined( 'ABSPATH' ) or die( 'Unauthorized Access' );
// Action when user login into admin panel
add_shortcode( 'external_data', 'callback_function_name' );
function callback_function_name( $atts) {
// return;
$defaults =[
'title'=>'table title'
];
$atts = shortcode_atts(
$defaults,
$atts,
'external_data'
);
$url = 'http://localhost/wp/wp-content/plugins/personal-widget/testjson.json';
$response = wp_remote_get( $url );
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
return "Something went wrong: $error_message";
}
$json=json_decode( wp_remote_retrieve_body( $response),true ) ;
//qui abbiamo creato la tabella dei dati
$html = '';
$html .= '<h2>' .$atts ['title']. '</h2>';
$html .= '<table>';
$html .= '<tr>';
$html .= '<td>Oraio Battaglia</td>';
$html .= '<td>Tipo</td>';
$html .= '<td>Provincia</td>';
$html .= '<td>Arena</td>';
$html .= '</tr>';
foreach ($json['planned_battles'] as $p_battle) {
$html .= '<tr>';
$html .= '<td>' . $p_battle['battle_time'] .'</td>';
$html .= '<td>' . $p_battle['province_type'] .'</td>';
$html .= '<td>' . $p_battle['province_id'] .'</td>';
$html .= '<td>' . $p_battle['arena_name'] .'</td>';
$html .= '</tr>';
}
$html .= '</table>';
// questo mostra la tabella html
return $html;
}
这是 json url
{
"clan": {
"elo_rating_6": 1000,
"elo_rating_10": 832,
"name": "SQUADRONE CORAZZATO ITALIANO",
"color": "#00a0e6",
"elo_rating_8": 1009,
"tag": "SQCI",
"appointed_battles_count": 3,
"id": 500057125,
"emblem_url": "***/clans/emblems/cl_125/500057125/emblem_64x64_gm.png",
"fine_level": 0
},
"planned_battles": [
{
"battle_time": "2021-11-12 21:15:00.000000",
"is_attacker": true,
"province_revenue": 0,
"province_id": "donbenito",
"winner_id": null,
"province_type": "landing",
"battle_reward": null,
"attack_type": "TOURNAMENT",
"arena_resp_number": null,
"province_owner_id": 500173820,
"clan": {
"division_id": null,
"arena_wins_percent": 0,
"arena_battles_count": 0,
"win_rating_delta": null,
"lose_rating_delta": null
},
"enemy": null,
"arena_name": "Malinovka",
"landing": true,
"revenue_level": 0,
"periphery": "EU2",
"bets_slice_time": null,
"front_id": "season_17_eu_tier10m",
"round_number": null,
"province_pillage_end_datetime": null,
"province_name": "Don Benito"
},
{
"battle_time": "2021-11-12 21:00:00.000000",
"is_attacker": true,
"province_revenue": 0,
"province_id": "tlemcen",
"winner_id": null,
"province_type": "landing",
"battle_reward": null,
"attack_type": "TOURNAMENT",
"arena_resp_number": null,
"province_owner_id": 500002273,
"clan": {
"division_id": null,
"arena_wins_percent": 0,
"arena_battles_count": 0,
"win_rating_delta": null,
"lose_rating_delta": null
},
"enemy": null,
"arena_name": "Steppes",
"landing": true,
"revenue_level": 0,
"periphery": "EU2",
"bets_slice_time": null,
"front_id": "season_17_eu_tier10m",
"round_number": null,
"province_pillage_end_datetime": null,
"province_name": "Tlemcen"
}
],
"battles": [
{
"battle_time": "2021-11-12 20:15:01.500000",
"is_attacker": true,
"province_revenue": 0,
"province_id": "lyon",
"winner_id": null,
"province_type": "landing",
"battle_reward": null,
"attack_type": "TOURNAMENT",
"arena_resp_number": 1,
"province_owner_id": 500211636,
"clan": {
"division_id": 2740559,
"arena_wins_percent": 40.51,
"arena_battles_count": 237,
"win_rating_delta": 12,
"lose_rating_delta": -3
},
"enemy": {
"division_id": 2740562,
"elo_rating_6": 1000,
"elo_rating_10": 1111,
"name": "-=Hungary-Shadow-Killers=-",
"arena_wins_percent": 51.2,
"color": "#8bff26",
"win_rating_delta": 3,
"elo_rating_8": 956,
"arena_battles_count": 125,
"tag": "HULKS",
"lose_rating_delta": -12,
"id": 500137692,
"emblem_url": "***/clans/emblems/cl_692/500137692/emblem_64x64_gm.png",
"fine_level": 0
},
"arena_name": "Live Oaks",
"landing": true,
"revenue_level": 0,
"periphery": "EU2",
"front_id": "season_17_eu_tier10m",
"round_number": 1,
"province_pillage_end_datetime": null,
"province_name": "Lyon"
}
]
}
您需要将该字符串转换为日期时间 object 以添加小时。 尝试这样的事情:
$battleTime = Datetime::createFromFormat('Y-m-d H:i:s.u', $p_battle['battle_time']);
// This will add one hour to your date
$battleTime->add(new DateInterval('PT1H'));
echo $battleTime->format('Y-m-d H:i:s.u')
应该这样做,如果您还有任何问题,请告诉我。 快乐编码!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.