如何从PHP变量$product中提取并格式化tickex_gamedate的值?
提取并转换
tickex_gamedate的值 步骤1:解析JSON字符串
先将echo $product输出的JSON字符串转换为PHP可操作的数组:
// 假设$product是输出的JSON字符串 $product_data = json_decode($product, true);
步骤2:提取tickex_gamedate对应的值
遍历meta_data数组,匹配目标键名获取原始日期值:
$raw_date = ''; // 遍历元数据数组找到目标键 foreach ($product_data['meta_data'] as $item) { if ($item['key'] === 'tickex_gamedate') { $raw_date = $item['value']; break; // 找到后停止遍历提升效率 } }
步骤3:转换为友好格式
利用PHP的DateTime类将dd/mm/yyyy格式的日期转换为中文友好格式(如2024年6月20日):
$friendly_date = ''; if (!empty($raw_date)) { // 按原始格式解析日期 $date = DateTime::createFromFormat('d/m/Y', $raw_date); // 输出中文友好格式 $friendly_date = $date->format('Y年m月d日'); // 若需要英文友好格式,可改为:$date->format('F j, Y'),输出June 20, 2024 } // 打印结果 echo $friendly_date;
完整示例代码
// 替换为实际的JSON字符串 $product = '{ "id":28, "name":"Serbia vs England", "slug":"serbia-vs-england", "date_created":{ "date":"2024-01-23 14:30:32.000000", "timezone_type":3, "timezone":"Europe/London" }, "date_modified":{ "date":"2024-01-23 16:44:32.000000", "timezone_type":3, "timezone":"Europe/London" }, "status":"publish", "featured":true, "catalog_visibility":"visible", "description":"", "short_description":"", "sku":"SERB_ENG", "price":"20", "regular_price":"20", "sale_price":"", "date_on_sale_from":null, "date_on_sale_to":null, "total_sales":0, "tax_status":"taxable", "tax_class":"", "manage_stock":false, "stock_quantity":null, "stock_status":"instock", "backorders":"no", "low_stock_amount":"", "sold_individually":false, "weight":"", "length":"", "width":"", "height":"", "upsell_ids":[], "cross_sell_ids":[], "parent_id":0, "reviews_allowed":false, "purchase_note":"", "attributes":[], "default_attributes":[], "menu_order":0, "post_password":"", "virtual":false, "downloadable":false, "category_ids":[15], "tag_ids":[], "shipping_class_id":0, "downloads":[], "image_id":"", "gallery_image_ids":[], "download_limit":-1, "download_expiry":-1, "rating_counts":[], "average_rating":"0", "review_count":0, "meta_data":[ { "id":129, "key":"saso_eventtickets_list", "value":"1" }, { "id":130, "key":"saso_eventtickets_is_ticket", "value":"yes" }, { "id":131, "key":"saso_eventtickets_ticket_start_date", "value":"2024-06-16" }, { "id":132, "key":"saso_eventtickets_ticket_max_redeem_amount", "value":"1" }, { "id":133, "key":"saso_eventtickets_ticket_amount_per_item", "value":"1" }, { "id":134, "key":"saso_eventtickets_list_formatter_values", "value":" { \"input_prefix_codes\":\"\", \"input_type_codes\":\"1\", \"input_amount_letters\":12, \"input_letter_excl\":\"2\", \"input_letter_style\":1, \"input_include_numbers\":\"1\", \"input_serial_delimiter\":\"1\", \"input_serial_delimiter_space\":null, \"input_number_start\":10000, \"input_number_offset\":1 }" }, { "id":180, "key":"tickex_gamedate", "value":"20/06/2024" } ]}'; $product_data = json_decode($product, true); $raw_date = ''; foreach ($product_data['meta_data'] as $item) { if ($item['key'] === 'tickex_gamedate') { $raw_date = $item['value']; break; } } if (!empty($raw_date)) { $date = DateTime::createFromFormat('d/m/Y', $raw_date); $friendly_date = $date->format('Y年m月d日'); echo $friendly_date; // 输出:2024年6月20日 }
内容的提问来源于stack exchange,提问作者Ally Gillespie
相关产品推荐
相关产品推荐

