我正在进行一项练习,在该练习中,我接受用户定义的带有天、月、年、小时、分钟、秒的时间戳,然后显示所述时间,并在多个时区之间变化,同时考虑包括无效输入在内的每种情况。
我的问题是,在将字符串转换为时间之前,如何将其格式与时间进行比较?我第一次尝试这样做,但了解到date()不会接受字符串。
$format = 'd-m-Y h:i:s';
$queryTime = $_POST['day'] . "-" . $_POST['month'] . "-" . $_POST['year'] . " " . $_POST['hour'] . ":" . $_POST['min'] . ":" . $_POST['sec'];
$checkInput = date($format, $queryTime) == $queryTime;
if (date($format,$queryTime) == $queryTime) {
$now = strtotime($queryTime);
} elseif (date($format,$queryTime) !== $queryTime) {
$prompt = "Your input is invalid datetime. Try again.";
echo '<script>alert('.$prompt.');</script>';
exit;
}
date()
的第二个参数必须是时间戳。使用strtotime()
将日期转换为时间戳:
if (date($format, strtotime($queryTime)) == $queryTime) {
} elseif (date($format,strtotime($queryTime)) !== $queryTime) {
最后一行实际上可能只是一个else
语句。
if (date($format, strtotime($queryTime)) == $queryTime) {
} else {
}