PHP调试的时候出现了警告:
It is not safe to rely on the system解决方法,其实就是时区设置不正确造成的,本文提供了3种方法来解决这个问题。
实际上,从PHP 5.1.0开始当对使用date()等函数时,如果timezone设置不正确,在每一次调用时间函数时,都会产生E_NOTICE 或者 E_WARNING 信息,而又在php中,date.timezone这个选项,默认情况下是关闭的,无论用什么php命令都是格林威治标准时间,但是PHP5.3中如果没有设置部分时间类函数也会强行抛出了这个错误的。
PS:现在由于大部分人使用VPS/云主机,需要自己配置的环境的就更加会容易出现这个情况。
建议:不熟悉PHP环境还是用比较成熟的一键安装包吧。
方法1:
(最好的方法)在php.ini里加上找到date.timezone项,设置date.timezone = “Asia/Shanghai”,重启环境就ok了。
方法2:
在需要用到这些时间函数的时候,在页面添加date_default_timezone_set(“PRC”);
方法3:
在页头加上设置时区ini_set(‘date.timezone’,’Asia/Shanghai’);
使用函数及数组来获取当月第一天及最后一天,比较实用
function getthemonth($date)
{
$firstday = date('Y-m-01', strtotime($date));
$lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));
return array($firstday,$lastday);
}
$today = date("Y-m-d");
$day=getthemonth($today);
echo "当月的第一天: ".$day[0]." 当月的最后一天: ".$day[1];
echo "<br/>";
获取本月第一天和最后一天的两种方法
$BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));
echo "本月的第一天为".date('Y-m-01',strtotime(date("Y-m-d")))."<br>"; //获取本月第一天
echo date('Y-m-d',mktime(0,0,0,date('m'),1,date('Y'))).'<br>';
echo "本月的最后一天为".date('Y-m-d', strtotime("$BeginDate +1 month -1 day"))."<br>"; //获取本月最后一天
echo date('Y-m-d',mktime(0,0,0,date('m')+1,0,date('Y')))."<br>";
获取上月第一天和最后一天的两种方法
echo "上一个月的第一天".date('Y-m-01', strtotime('-1 month'))."<br>"; //获取上一个月的的第一天
echo date('Y-m-d',mktime(0,0,0,date('m')-1,1,date('Y'))).'<br>';
echo "上一个月的最后一天".date('Y-m-t', strtotime('-1 month'))."<br>"; //获取上一个月的最后一天
echo date('Y-m-d',mktime(0,0,0,date('m'),0,date('Y')))."<br>";
<?php
// $number = 123;
// $txt = sprintf("%f",$number);
// echo $txt; //123.000000
header('content-type:text/html;charset=utf-8');
date_default_timezone_set('Asia/Shanghai'); //设置时区
//echo "date(Y-m-d)输出为".date("Y-m-d")."<br>";
//echo "date(Y-m-d h:i:s),time()输出为".date('y-m-d h:i:s',time())."<br>";
//echo date('l')."<br>"; //tuesday
$year = date('y'); //17
$month = sprintf('%02d',date('m') - 1); //05
//echo strtotime("17-05-1")."<br>"; //1493568000
$BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));
echo "本月的第一天为".date('Y-m-01',strtotime(date("Y-m-d")))."<br>"; //获取本月第一天
echo date('Y-m-d',mktime(0,0,0,date('m'),1,date('Y'))).'<br>';
echo "本月的最后一天为".date('Y-m-d', strtotime("$BeginDate +1 month -1 day"))."<br>"; //获取本月最后一天
echo date('Y-m-d',mktime(0,0,0,date('m')+1,0,date('Y')))."<br>";
echo "上一个月的第一天".date('Y-m-01', strtotime('-1 month'))."<br>"; //获取上一个月的的第一天
echo date('Y-m-d',mktime(0,0,0,date('m')-1,1,date('Y'))).'<br>';
echo "上一个月的最后一天".date('Y-m-t', strtotime('-1 month'))."<br>"; //获取上一个月的最后一天
echo date('Y-m-d',mktime(0,0,0,date('m'),0,date('Y')))."<br>";
// echo date('Y-m-d', strtotime("17-05-1"))."<br>";
// echo date('Y-m-d', strtotime("{$year}-{$month}-1"))."<br>";
// echo strtotime("{$year}-{$month}-1 +1 month -1 day")."<br>";
// echo date('Y-m-d',strtotime("{$year}-{$month}-1 +1 month -1 day"))."<br>";
?>