首页 > 解决方案 > PHP日期,如何防止php日期自动转换为第二天?

问题描述

如您所知,php date 将返回这些日期的有效日期:

year-04-31

year-06-31

year-09-31

我在这里阅读了关于不存在日期的其他 SO 线程,但是这个线程并没有解决我的问题。我的目标是防止 php 自动让这些日期转换为第二天。例如,如果用户输入日期2018-04-31,系统会提示错误。

$value = '2018-06-31'; // assume user input this date
if(date is 04-31, 06-31 or 09-31) // i have no idea what to put here
  echo 'wrong date, please enter again';

编辑

有人实际上在 SO中将这个问题发布为该线程的重复项......它的哪一部分说的是关于 4-31、6-31、9-31 的内容?请不要简单地将其标记为重复,在标记之前将我的问题与其他问题进行比较。谢谢你

标签: php

解决方案


尝试以下

<?php

$date = '2018-06-31';


function checkIsAValidDate($date){
    return (bool)strtotime($date) && date("Y-m-d", strtotime($date)) == $date;
}

if(checkIsAValidDate($date) == 1){
    echo 'valid';   
}else{
    echo 'not valid';
}

?>

这将验证格式,并且日期是真实的。IE,六月只有30天。


推荐阅读