到目前为止,我这样做是为了转换日期
$date = '01/1990';
date('Y-m-d', strtotime(str_replace('-', '/', $date . '/01')));
但我得到了一个布尔值false;有什么想法吗?
您的str_replace正在搜索-
并替换为/
。
这里有一个简化的解决方案,它选择不将日期连接到日期字符串上。
$date = '01/1990';
$date = str_replace('/', '-', $date);
$date = date('Y-m-1', strtotime($date));
如果您确实想将您的一天连接到日期字符串格式上,作为dd/mm/yyyy
$date = '01/1990';
$date = '01/' . $date;
$date = str_replace('/', '-', $date);
$date = date('Y-m-d', strtotime($date));
用$date
:替换$data
echo date('Y-m-d', strtotime(date('Y-d-m', strtotime('01/' . str_replace('-', '/', $date)))));
strtotime
接受dd-mm-yyyy
和mm/dd/yyyy
(以及一些其他格式,如yyyy-mm-dd
)。区分dd-mm-yyyy
和mm/dd/yyyy
的唯一方法是分隔符。
由于您从一个看起来是mm/yyyy
格式的字符串开始,最简单的解决方案是将其转换为dd-mm-yyyy:
$date = '01/1990';
date('Y-m-d', strtotime('01-'.str_replace('/', '-', $date)));
您可能还想检查DateTime类。