与其让用户输入日期格式,不如让他们从下拉菜单中选择一个预定义的格式。这样你就可以避免一个完全疯狂的人输入“month day-YYYY”作为一种格式或其他奇怪的东西,甚至只是犯了一个拼写错误。获得格式列表后,您可以使用 php if 语句将日期转换为您想要的任何完成格式。
$dateFormat = $_POST['dateFormat'];
$date = $dateFromFile;
if ($dateFormat == "YYYYMMDD"){
$cleanDate = DateTime::createFromFormat('Ymd', $date);
echo $cleanDate->format('Y-m-d');
}
else if ($dateFormat == "YYYY/MM/DD"){
$explodedDate = explode("/", $date);
$year = $explodedDate[0];
$month = $explodedDate[1];
$day = $explodedDate[2];
$cleanDate = "$year-$month-$day";
echo $cleanDate;
}
else if ($dateFormat == "Month DD, YYYY"){
$explodedDate = explode(" ", $date);
$month = $explodedDate[0];
//change month from word into corresponding number
if ($month == "January" || $month == "january" || $month == "Jan" || $month == "jan" || $month == "Jan." || $month == "jan."){
$cleanMonth = "01";
}
else if ($month == "February" || $month == "february" || $month == "Feb" || $month == "feb" || $month == "Feb." || $month == "feb."){
$cleanMonth = "02";
}
else if ($month == "March" || $month == "march" || $month == "Mar" || $month == "mar" || $month == "Mar." || $month == "mar."){
$cleanMonth = "03";
}
else if ($month == "April" || $month == "april" || $month == "Apr" || $month == "apr" || $month == "Apr." || $month == "apr."){
$cleanMonth = "04";
}
else if ($month == "May" || $month == "may" || $month == "May" || $month == "may" || $month == "May." || $month == "may."){
$cleanMonth = "05";
}
else if ($month == "June" || $month == "june" || $month == "Jun" || $month == "jun" || $month == "Jun." || $month == "jun."){
$cleanMonth = "06";
}
else if ($month == "July" || $month == "july" || $month == "Jul" || $month == "jul" || $month == "Jul." || $month == "jul."){
$cleanMonth = "07";
}
else if ($month == "August" || $month == "august" || $month == "Aug" || $month == "aug" || $month == "Aug." || $month == "aug."){
$cleanMonth = "08";
}
else if ($month == "September" || $month == "september" || $month == "Sep" || $month == "sep" || $month == "Sep." || $month == "sep."){
$cleanMonth = "09";
}
else if ($month == "October" || $month == "october" || $month == "Oct" || $month == "oct" || $month == "Oct." || $month == "oct."){
$cleanMonth = "10";
}
else if ($month == "November" || $month == "november" || $month == "Nov" || $month == "nov" || $month == "Nov." || $month == "nov."){
$cleanMonth = "11";
}
else if ($month == "December" || $month == "december" || $month == "Dec" || $month == "dec" || $month == "Dec." || $month == "dec."){
$cleanMonth = "12";
}
$day = $explodedDate[1];
$year = $explodedDate[2];
$cleanDay = preg_replace("/[^0-9]/","",$day);//remove extra characters from day
$cleanDate = "$year-$cleanMonth-$cleanDay";
echo $cleanDate;
}
您必须想办法转换您能想到的每种不同的日期格式。所以这需要一些时间来玩。您还可以让用户选择通知网站管理员未列出的日期格式。然后让该选项向您发送电子邮件,以便您可以将其添加到列表中。