簡體   English   中英

PHP高級strtotime轉換

[英]PHP advanced strtotime convert

我有類似的日期和時間:

12-Oct-13 09:15 PM AEST
10-Oct-13 07:05 PM AEST

我使用了PHP的strtotime()函數,將其轉換為datetime對象,如下所示:

echo $datetime=strtotime('12-Oct-13 09:15 PM AEST');

但是結果卻是空的。 我的想法是將上述日期時間轉換為其他格式,例如:

12-10-2013 09:15 PM
10-10-2013 07:05 PM

任何人都可以幫我正確地轉換為日期時間對象。 然后在我的代碼中使用它。

PHP不支持AEST時區,因此strtotime()返回false 請參閱支持的TZ的列表

您仍然可以將輸入轉換為所需的輸出:

$input = '12-Oct-13 09:15 PM AEST';
$dt = DateTime::createFromFormat('d-M-y H:i A *', $input);
echo $dt->format('d-m-Y h:i A'); # 12-10-2013 09:15 PM

或,由於AEST時區比UTC偏移+10:00 ,只需將其替換為字符串:

$input = '12-Oct-13 09:15 PM AEST';
$input = str_replace(' AEST', ' +1000', $input);
$dt = new DateTime($input);
print_r($dt);
/*
DateTime Object
(
    [date] => 2013-10-12 21:15:00
    [timezone_type] => 1
    [timezone] => +10:00
)
*/

或者,從字符串中刪除時區部分:

$input = '12-Oct-13 09:15 PM AEST';
$input = substr($input, 0, strrpos($input, ' '));

echo date_create($input)->format('d-m-Y h:i A'); # 12-10-2013 09:15 PM
# or
echo date('d-m-Y h:i A', strtotime($input)); # 12-10-2013 09:15 PM

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM