正在处理将在明年年底替换的旧版应用程序。我正在尝试修改它如何将一些日期写入数据库,而我对PHP不够了解,无法弄清楚为什么这样做:
前端有一个日期选择器。如果您选择类似2019年12月1日的日期,它将通过jquery保留该日期,恰好在将其传递到下面的函数之前是正确的,然后它进入该函数并将strtotime($str)
弄乱了。>
它将2019年12月1日转换为1543724340
,将其放到UNIX时间戳中显示为2018年12月1日。
如何防止这种情况?我只是想获取用户在日历中设置的日期。
function str2date($str,$format="Y-m-d") {
return date($format, strtotime($str));
}
答案 0 :(得分:2)
只需使用str_replace从字符串中删除逗号,strtotime即可正确解析它。
function str2date($str,$format="Y-m-d") {
return date($format, strtotime(str_replace(",", "", $str)));
}
答案 1 :(得分:1)
您无需删除或更改格式。 只需使用DateTime:
$dateTime = DateTime::createFromFormat("d M, Y", $date);
然后,如果您需要时间戳记,请使用
$dateTime->getTimestamp();