各位大大, 上次小弟曾发过几个帖子关于php时间问题。下面是几位大大给的代码。
$startdate=strtotime("$fdatevar"); //开始日期$enddate=strtotime("+3 months","$startdate"); //开始日期加上三个月$days=round(($enddate-$startdate)/3600/24); //开始到结束一共有几天$date=strtotime(date("Y/m/d")); //今天
$d=round(($date-$startdate)/3600/24); //开始日期到今天一共有几天$daysleft=($days -$d); //今天到结束那天还剩多少天
上面是代码,完全可用。小弟想再改进一下,第一次运行以后得到剩余的天数后$daysleft(上面的代码),上面的代码以后再也不运行了。但是每过一天,$daysleft就会自动减少一天,请问如何写呀??着急中。。谢谢各位大大
$startdate=strtotime("$fdatevar"); //开始日期$enddate=strtotime("+3 months","$startdate"); //开始日期加上三个月$days=round(($enddate-$startdate)/3600/24); //开始到结束一共有几天$date=strtotime(date("Y/m/d")); //今天
$d=round(($date-$startdate)/3600/24); //开始日期到今天一共有几天$daysleft=($days -$d); //今天到结束那天还剩多少天
上面是代码,完全可用。小弟想再改进一下,第一次运行以后得到剩余的天数后$daysleft(上面的代码),上面的代码以后再也不运行了。但是每过一天,$daysleft就会自动减少一天,请问如何写呀??着急中。。谢谢各位大大
*******************************************************************
? 什么意思
exit();
sleep(5);
$name=time();
$fp=fopen("$name.txt",'w');
fwrite($fp,time());
fclose($fp);
$fp = fsockopen('localhost', 80, $errno, $errmsg);
fputs($fp, "GET /test/time.php\r\n\r\n");
fclose($fp);
就是mysql里面有个值$daysleft ,这个值每天减一, 怎么写呀》???谢谢
function countDate($beginDate,$endDate)
{
$nowDate = date("Y-m-d");//今天的日期 $nowMk = strtotime($nowDate);//今天的时间戳
$beginMK = strtotime($beginDate);//开始日期的时间戳
$endMK = strtotime($endDate);//结束日期的时间戳
$daysTobegin = ceil(abs(($nowMk-$beginMK)/24/3600));//今天距开始日期的天数
$daysToend = ceil(abs(($endMK-$nowMk)/24/3600));//今天距结束日期的天数
return $daysTobegin."|".$daysToend;
}
$beginDate = "2010-5-1";
$endDate = "2010-10-31";
$showDays = countDate($beginDate,$endDate);//每次该脚本运行时就调用此函数一次,故每天都会不同的
$showDaysArr = explode("|",$showDays);
echo "今天离2010上海世博会开幕还有:".$showDaysArr[0]."天<br>";//以2010年上海世博会为例
echo "今天离2010上海世博会闭幕还有:".$showDaysArr[1]."天";
2,然后用三个月后的那天减去输入的那天(不是输入当天的日期,是用户所输入的日期),得出三个月共有多少天(90天?91天?之类的)
3,再算出当天的时间,用三个月后的时间减去当天的时间,就得到离三个月后结束的那天还剩下多少天。以上三步的代码在此,$startdate=strtotime("$fdatevar"); //开始日期$enddate=strtotime("+3 months","$startdate"); //开始日期加上三个月$days=round(($enddate-$startdate)/3600/24); //开始到结束一共有几天$date=strtotime(date("Y/m/d")); //今天
$d=round(($date-$startdate)/3600/24); //开始日期到今天一共有几天$daysleft=($days -$d); //今天到结束那天还剩多少天$daysleft就是还剩下多少天到结束的日子。
问题是我需要每过一天,$daysleft的值就减一。求教各位大大,是不是把上面那些代码每天运行一次$daysleft的值就会减一??
<html>
<form action="countdate.php" method="POST">
beginDate:<input name="beginDate" type="text" value=''>
<p>
endDate:<input name="endDate" type="text" value = "">
<input type="submit" value="submit">
</form>
</html>
php处理页面,采用post方式传参,直接输出到浏览器
<?php
date_default_timezone_set("PRC");
function countDate($beginDate,$endDate)
{
$nowMk = strtotime(date("Y-m-d"));//今天的时间戳
$beginMK = strtotime($beginDate);//开始日期的时间戳
$endMK = strtotime($endDate);//结束日期的时间戳
$daysTobegin = ceil(abs(($nowMk-$beginMK)/24/3600));//今天距开始日期的天数
$daysToend = ceil(abs(($endMK-$nowMk)/24/3600));//今天距结束日期的天数
$alldays = ceil(abs(($endMK-$beginMK)/24/3600));//总天数
return $daysTobegin."|".$daysToend."|".$alldays;
}
$showDays = countDate($_POST["beginDate"],$_POST["endDate"]);//每调用此函数一次,参数是post传进来的
$showDaysArr = explode("|",$showDays);
echo "总共有".$showDaysArr[2]."天<br>";
echo "今天离".$_POST["beginDate"]."还有:".$showDaysArr[0]."天<br>";
echo "今天离".$_POST["endDate"]."还有:".$showDaysArr[1]."天";
?>其实楼主的需求也完全可以用JS实现,不经过服务器处理。有时间可以再交流下。