在传递到strtotime之前,请检查用户输入时间的格式



我正在进行一项练习,在该练习中,我接受用户定义的带有天、月、年、小时、分钟、秒的时间戳,然后显示所述时间,并在多个时区之间变化,同时考虑包括无效输入在内的每种情况。

我的问题是,在将字符串转换为时间之前,如何将其格式与时间进行比较?我第一次尝试这样做,但了解到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 {
}

相关内容

  • 没有找到相关文章