我已經得到了下面的代碼,我正在使用它來提取一天$ day變量。但是,PHP似乎使用默認配置日期格式,並假定日期格式爲d-m-Y。這裏是我的代碼:格式化日期使用PHP strtotime
$dateformat = "m-d-Y";
$selected_date = "04-30-2013";
$day = date(d, strtotime($selected_date));
echo $day;
有沒有辦法對我來說,動態讓基於$日期格式變量定義的格式PHP執行?
感謝
我已經得到了下面的代碼,我正在使用它來提取一天$ day變量。但是,PHP似乎使用默認配置日期格式,並假定日期格式爲d-m-Y。這裏是我的代碼:格式化日期使用PHP strtotime
$dateformat = "m-d-Y";
$selected_date = "04-30-2013";
$day = date(d, strtotime($selected_date));
echo $day;
有沒有辦法對我來說,動態讓基於$日期格式變量定義的格式PHP執行?
感謝
這裏的問題是,strtotime()
不能在自定義格式解析日期字符串。從documentation for strtotime()
(重點煤礦):在第m
日期/ d/y或DMY格式通過查看在各個組件之間的分離器消除歧義:如果分離器是斜線(/),則美國假定m/d/y;而如果分隔符是破折號( - )或點(。),則假定歐洲的d-m-y格式。 爲避免潛在的歧義,最好在可能的情況下使用ISO 8601(YYYY-MM-DD)日期或
DateTime::createFromFormat()
。
解決方法是使用DateTime::createFromFormat()
。它可以解析自定義格式的日期:
$dateObj = DateTime::createFromFormat($dateformat, $selected_date);
$day = $dateObj->format('d'); // => 30
太棒了,這正是我要找的 –
@JohnSmith:很高興能有幫助! –
'日期(d,'加薪可能是一個警告,你可能需要更換''由$ dateformat' – Asenar
D'如果你只是想你需要'的一天。? $ day = date('d',strtotime($ selected_date));' – elitechief21