$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就会自动减少一天,请问如何写呀??着急中。。。。。
谢谢各位大大
14 个解决方案
#1
上面的代码以后再也不运行了。但是每过一天,$daysleft就会自动减少一天,
*******************************************************************
? 什么意思
*******************************************************************
? 什么意思
#2
楼上的大大,
意思是说 那些代码只运行一遍,得到剩余天数$daysleft后就不在运行了,然后$daysleft每过一天就减一。如何写呀??
谢谢
意思是说 那些代码只运行一遍,得到剩余天数$daysleft后就不在运行了,然后$daysleft每过一天就减一。如何写呀??
谢谢
#3
是想它每天都自动运行一次,并减一 ??
#4
就是第一次输入的时候运行,以后再不运行了,不是每天运行一次,
主要的是$daysleft的值怎么每天减一呀??
谢谢
主要的是$daysleft的值怎么每天减一呀??
谢谢
#5
顶,各位大大谁能帮我一下?
#6
if($_GET['ac']=='stop')
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);
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);
#7
楼上的大大,你给的代码对我来说太难了,
就是mysql里面有个值$daysleft ,这个值每天减一, 怎么写呀》???
谢谢
就是mysql里面有个值$daysleft ,这个值每天减一, 怎么写呀》???
谢谢
#8
date_default_timezone_set('PRC');
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]."天";
#9
麻烦楼主把你的需求详细说明下,想最终实现什么,便于大家帮你分析。
#10
楼上的大大,非常感谢你的代码,
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的值就会减一??
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的值就会减一??
#11
其實你可以寫一個任務計畫的....
#12
楼上的大大什么意思??
#13
用户页面countdate.html,日期格式形如2010-5-1 (年-月-日),你可以写个正则验证来验证日期格式是否合法,比较简单的,我就不写了。
php处理页面,采用post方式传参,直接输出到浏览器
其实楼主的需求也完全可以用JS实现,不经过服务器处理。有时间可以再交流下。
<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实现,不经过服务器处理。有时间可以再交流下。
#14
谢谢楼上的大大们,问题刚才我已经解决了,分数还是给你们。
#1
上面的代码以后再也不运行了。但是每过一天,$daysleft就会自动减少一天,
*******************************************************************
? 什么意思
*******************************************************************
? 什么意思
#2
楼上的大大,
意思是说 那些代码只运行一遍,得到剩余天数$daysleft后就不在运行了,然后$daysleft每过一天就减一。如何写呀??
谢谢
意思是说 那些代码只运行一遍,得到剩余天数$daysleft后就不在运行了,然后$daysleft每过一天就减一。如何写呀??
谢谢
#3
是想它每天都自动运行一次,并减一 ??
#4
就是第一次输入的时候运行,以后再不运行了,不是每天运行一次,
主要的是$daysleft的值怎么每天减一呀??
谢谢
主要的是$daysleft的值怎么每天减一呀??
谢谢
#5
顶,各位大大谁能帮我一下?
#6
if($_GET['ac']=='stop')
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);
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);
#7
楼上的大大,你给的代码对我来说太难了,
就是mysql里面有个值$daysleft ,这个值每天减一, 怎么写呀》???
谢谢
就是mysql里面有个值$daysleft ,这个值每天减一, 怎么写呀》???
谢谢
#8
date_default_timezone_set('PRC');
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]."天";
#9
麻烦楼主把你的需求详细说明下,想最终实现什么,便于大家帮你分析。
#10
楼上的大大,非常感谢你的代码,
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的值就会减一??
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的值就会减一??
#11
其實你可以寫一個任務計畫的....
#12
楼上的大大什么意思??
#13
用户页面countdate.html,日期格式形如2010-5-1 (年-月-日),你可以写个正则验证来验证日期格式是否合法,比较简单的,我就不写了。
php处理页面,采用post方式传参,直接输出到浏览器
其实楼主的需求也完全可以用JS实现,不经过服务器处理。有时间可以再交流下。
<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实现,不经过服务器处理。有时间可以再交流下。
#14
谢谢楼上的大大们,问题刚才我已经解决了,分数还是给你们。