在我的Web应用程序中,我有一个用户在一个简单的文本框中输入日期.那个输入(当然是在消毒之后)是通过strtotime()运行的,86399被添加到它,以便使时间戳写在一天结束(11:59:59).这是为了到期日期(所以如果日期过去了,应用程序会提出一个标志)
对于我测试的日子,它工作…
1月5日保存为1月5日,最后一天结束.
3月13日拯救了3月13日
3月15日拯救了3月15日
3月14日,无论什么原因,自己在3月15日.
3月14日神秘的几秒钟短还是什么东西?
旧代码:
if ($_POST['dateto'] != '') { $dateto = strtotime(MysqL_real_escape_string($_POST['dateto'])) + 86399; }
新代码:
# Offset to "end of day" list($y,$m,$d) = explode('-',date("Y-m-d",strtotime($_POST['dateto']))); $d++; $dateto = strtotime($y . '-' . $m . '-' . $d) - 1;
像其他人一样说,这是因为夏令时.要解决这个问题,你可以这样做:
<?PHP list($y,strtotime($date_from_user))); $h = 23; $i = 59; $s = 59; $mytimestamp = "$y-$m-$d $h:$i:$s"; ?>
原文地址:https://www.jb51.cc/php/132837.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。