php获取指定日期的前一天,前一月,前一年,本周,上一周日期,偏移量

前一天的日期为:

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


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值