前一天的日期为:
date("Y-m-d",strtotime("-1 days",strtotime('2019-08-31')))
前一月的日期为
date("Y-m-d",strtotime("-1 months",strtotime('2019-08-31')))
前一年的日期为:
date("Y-m-d",strtotime("-1 years",strtotime('2019-08-31')))
后一天的日期为:
date("Y-m-d",strtotime("+1 days",strtotime('2019-08-31')))
后一月的日期为:
date("Y-m-d",strtotime("+1 months",strtotime('2019-08-31')))
后一年的日期为:
date("Y-m-d",strtotime("+1 years",strtotime('2019-08-31')))
如果不是1,就把+1或者-1换成+n或者-n就可以了。
获取本周一日期:
echo date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600)); //w为星期几的数字形式,这里0为周日
获取本周日日期:
//同样使用w,以现在与周日相关天数算
echo date('Y-m-d', (time() + (7 - (date('w') == 0 ? 7 : date('w'))) * 24 * 3600));
获取上周一日期:
//无论今天几号,-1 monday为上一个有效周未
echo date('Y-m-d', strtotime('-1 monday', time()));
获取上周日日期:
//上一个有效周日,同样适用于其它星期
echo date('Y-m-d', strtotime('-1 sunday', time()));
echo '<br>上周起始时间:<br>';
echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y"))),"\n";
echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))),"\n";
echo '<br>本周起始时间:<br>';
echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))),"\n";
echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))),"\n";
获取毫秒时间戳
/**
* 13位毫妙时间戳
* @return string
*/
function millTimestamp(){
list($usec, $sec) = explode(' ', microtime());
return (float)sprintf('%.0f', (floatval($usec) + floatval($sec)) * 1000);
}
根据时区获取偏移量
$timezone = new DateTimeZone("America/New_York");
$timezone = new DateTimeZone("America/Sao_Paulo");
$timezone = new DateTimeZone("Asia/Shanghai");
$time = new DateTime("now");
$offset = $timezone->getOffset($time); // Offset in seconds int(-14400)
var_dump($time->format('P')); // +08:00
var_dump($offset); // 28800