$todays_date = date('d-m-y'); //17-2-18
$return_date = "16-02-18"; //day-month-year
$todays_datesec = strtotime($todays_date);
$return_datesec = strtotime($return_date);
$diff = $todays_datesec - $return_datesec;
$days = $diff/86400;
echo $days
上面的代码显示的值为-363,这是不正确的。应该是1,请帮忙。
答案 0 :(得分:1)
strtotime()功能不支持您给出的日期格式。使用php DateTime::createFromFormat从17-02-18
| | |___Year
| |___Month
|___Date
格式创建日期。
在你的例子中,它将是
$todays_date = DateTime::createFromFormat('d-m-y', '17-02-18');
$return_date = DateTime::createFromFormat('d-m-y', '16-02-18');
$diff = $return_date->diff($todays_date);
echo "Days :".$diff->days;
示例代码
dd.mm.yy
只有一种格式支持date $todays_date="17.02.18";
$return_date="13.02.18";
$returnsecs=strtotime($return_date);
$todayssecs=strtotime($todays_date);
$daysleft= $todayssecs - $returnsecs;
$r = (int)($daysleft/3600);
echo "Result : ".$r;
,因此您可以使用下面的代码
ThreadStart starter;
Thread worker_thread = null;
starter = Work;
starter += () => { AnotherWork();};
worker_thread = new Thread(starter) { IsBackground = true };
worker_thread.Start();
[上述代码演示] https://eval.in/957940
答案 1 :(得分:0)
试试这个:
$todayDate = date('d-m-Y');
echo $todayDate;
输出:
17-02-2018
如果您输入' Y',如果您使用' y',则年份将以4位数字显示。年份将是2位数。
你可以看看here!
答案 2 :(得分:0)
$return_date="16-02-18";
如果您尝试这样做,不是strtotime()
的正确日期格式:
$return_date = date('d-m-Y', strtotime($return_date));
您将获得18-02-2016
,而且日期不正确
如果您无法更改输入数据格式,可以先通过字符串操作进行修改,如下所示:
$return_date = substr_replace($return_date , '20', strlen($return_date)-2, 0);
我假设你只处理2000以上的日期