关于一个PHP判断当月开始和结束的时间戳的问题

求一自定义函数,需要取得当月的开始时间和结束时间的时间戳!如:现在是4月,那就取得2010年4月1日00:00:00的时间戳和2010年4月30日23:59:59的时间戳... 求一自定义函数,需要取得当月的开始时间和结束时间的时间戳!

如:现在是4月,那就取得2010年4月1日00:00:00的时间戳和2010年4月30日23:59:59的时间戳!!!

但是有没有什么好的方法呢?需要精确到秒,判断是不是闰年,当月是30日结束还是31日结束或者是28、29??

请高手指教
我自己想到了! 感谢大家的帮助,不知道我的这个方法是不是最好的?

function datestage($year, $month)
{

$starttime = strtotime($year.'-'.$month.'-01');
$endmonth = $month == 12 ? 1 : $month + 1;
$endyear = $month == 12 ? $year + 1 : $year;

$endtime = strtotime($endyear.'-'.$endmonth.'-01') - 1;
return $starttime.$endtime;
}

开始时间自然是很简单的,然后月份+1,如果是12月那就返回1月,日自然也是01日,在把得到的时间戳减1就可以了!
展开
 我来答
swg0110
推荐于2017-12-16 · TA获得超过469个赞
知道小有建树答主
回答量:1074
采纳率:0%
帮助的人:628万
展开全部
没必要自己判断,系统有读取本月天数的函数date('t')。这个要是不对,你砍我!调试过!

$y=date("Y",time());
$m=date("m",time());
$d=date("d",time());
$t0=date('t'); // 本月一共有几天
$t1=mktime(0,0,0,$m,1,$y); // 创建本月开始时间
$t2=mktime(23,59,59,$m,$t0,$y); // 创建本月结束时间
echo "今天时间\t".date("Y-m-d",time())."<br>";
echo "本月开始\t".date("Y-m-d H:i:s",$t1)."<br>";
echo "本月结束\t".date("Y-m-d H:i:s",$t2)."<br>";
echo "时间差:";
echo $t2-$t1."<br>";
凌的博客
2010-04-07 · TA获得超过235个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:164万
展开全部
<?
date_default_timezone_set('PRC');

echo "<br><br>";
echo date("Y-m-d H:i:s");
echo "<br><br>";
echo "<br>时间戳是: ";
echo $time=time();//你可以试试改变这个做测试

echo $d=date("d",$time);//你可以试试改变这个做测试

$tommorrow=$time+3600*24;
echo "<br><br>";
echo $t=date("Y-m-d H:i:s",$tommorrow);
$t=date("d",$tommorrow);
echo "<br><br>";
//判断第一天时间戳
if($d==1){
if($t_time=="00:00:00"){
echo time(); //这是最后一天 结束的时间戳

}
}
//判断最后一天时间戳
if($d>$t){

echo "这是最后一天";
echo $t_time=date("H:i:s");//现在时间 24小时制
if($t_time=="23:59:59"){
echo time(); //这是最后一天 结束的时间戳

}
}

?>
测试通过 ,应该是这样吧!
思路 : 第一天 很好判断: 就是1号
最后一天 : 只有一个月的最后一天 日期才大于 明天的(31>1,29>1,30>1,28>1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玩转津门
2010-04-07 · TA获得超过3515个赞
知道小有建树答主
回答量:1474
采纳率:0%
帮助的人:852万
展开全部
我的思路是:

判断月初的时间很好办,1日的00:00:00就可以了

判断每月最后一天你用checkdate()函数,依次检查y年m月(31/30/29)日的时间是否合法就可以判断出来了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2010-04-07 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
下面的代码调试通过,绝对保证正确,希望你能够看明白:

<?php
$today=localtime(time(), true);
$m_start=mktime(0,0,0,$today['tm_mon'],1,$today['tm_year']);
if ($today['tm_mon']==11){
$today['tm_mon']=0;
$today['tm_year']++;
}else $today['tm_mon']++;
$m_stop=mktime(0,0,0,$today['tm_mon'],1,$today['tm_year'])-1;
//显示结果
print_r(localtime($m_start, true));
print_r(localtime($m_stop, true));
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式