加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 3月14日不是86400秒?

发布时间:2020-12-13 16:28:24 所属栏目:PHP教程 来源:网络整理
导读:在我的Web应用程序中,我有一个用户在一个简单的文本框中输入日期.那个输入(当然是在消毒之后)是通过strtotime()运行的,86399被添加到它,以便使时间戳写在一天结束(11:59:59).这是为了到期日期(所以如果日期过去了,应用程序会提出一个标志) 对于我测试的日子,
在我的Web应用程序中,我有一个用户在一个简单的文本框中输入日期.那个输入(当然是在消毒之后)是通过strtotime()运行的,86399被添加到它,以便使时间戳写在一天结束(11:59:59).这是为了到期日期(所以如果日期过去了,应用程序会提出一个标志)

对于我测试的日子,它工作…

1月5日保存为1月5日,最后一天结束.

3月13日拯救了3月13日

3月15日拯救了3月15日

3月14日,无论什么原因,自己在3月15日.

3月14日神秘的几秒钟短还是什么东西?

更新:感谢oezi的解决方案 – 像一个魅力.代码要求:

旧代码:

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";
?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读