php获取一些时间实现方法(附代码)

这几天在开发的时候遇到的一些时间上的问题,整理了一下,分享给大家,可以看看,有需要的话可以利用一下。

1.获取上个月第一天及最后一天.

echo date('Y-m-01', strtotime('-1 month'));
echo "<br/>";
echo date('Y-m-t', strtotime('-1 month'));
echo "<br/>";

上面的方法有些问题,根据bg5hfc回复做下修改

//上个月第一天:
echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 month'));// 计算出本月第一天再减一个月

//上个月最后一天:
echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 day')); // 计算出本月第一天再减一天

2.获取当月第一天及最后一天.

$BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));
echo $BeginDate;
echo "<br/>";
echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day"));
echo "<br/>";

3.获取当天年份、月份、日及天数.

echo " 本月共有:".date("t")."天";
echo " 当前年份".date('Y');
echo " 当前月份".date('m');
echo " 当前几号".date('d');
echo "<br/>";

4.使用函数及数组来获取当月第一天及最后一天,比较实用

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/>";

获取本月日期:

function getMonth($date){
  $firstday = date("Y-m-01",strtotime($date));
  $lastday = date("Y-m-d",strtotime("$firstday +1 month -1 day"));
  return array($firstday,$lastday);
}

$firstday是月份的第一天,假如$date是2018-2这样的话,$firstday就会是2018-02-01,然后根据$firstday加一个月就是2018-03-01,再减一天就是2018-02-28,用date()和strtotime()真是太方便了。

  获取上月日期:

function getlastMonthDays($date){
  $timestamp=strtotime($date);
  $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01'));
  $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
  return array($firstday,$lastday);
}

上月日期需要先获取一个时间戳,然后在月份上-1就OK了,超智能的date()会把2018-0-1这种东西转换成2017-12-01,太爽了。

获取下月日期:

function getNextMonthDays($date){
  $timestamp=strtotime($date);
  $arr=getdate($timestamp);
  if($arr['mon'] == 12){
    $year=$arr['year'] +1;
    $month=$arr['mon'] -11;
    $firstday=$year.'-0'.$month.'-01';
    $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
  }else{
    $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01'));
    $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
  }
  return array($firstday,$lastday);
}

下月日期的代码看起来比较长一点,因为date()转不了类似2018-13-01这种东西,它会直接回到1970,所以前面需要处理一下12月的问题,除了12月就直接月份+1就OK啦。

总得来说,还是很方便的,日期函数太强大了。

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处:https://www.cwhello.com/6459.html

(0)
上一篇 2018年4月20日 00:00
下一篇 2018年4月25日 09:24

相关推荐

  • PHP与jquery实时显示网站在线人数实例详解

    代码如下:我们在一些应用中需要动态展示数据,比如当前在线人数,当前交易总额,当前汇率等等,前端页面需要实时刷新获取最新数据。本文将结合实例给大家介绍使用jQuery和PHP来实现动态数字展示效果。 本例假设要在...

    2017年9月30日
    0152
  • php运算符优先级

    说明:括号优先,赋值最后...

    2017年12月12日
    0155
  • PHP 二维数组排序保持键名不变的方法

    对二维数组指定的键名排序,首先大家想到的是array_multisort函数,关于array_multisort的用法我之前也写了一篇废话不多言,我们看个实例:<?php$data = array( 1001 => array( 'age' => 22, �...

    2022年6月16日
    052
  • 掌握php短信接口代码

    本文实例为大家分享了几个常用的php短信接口代码,供大家参考,具体内容如下1. 短信调用class <?php /** * User: Administrator * Date: 2016/5/8 0008 * Time: 下午 2:36 */ class Sms{ //Luosimao api key priv...

    2022年6月17日
    068
  • (实用篇)PHP实现队列及队列原理

    队列说明 队列是一种线性表,按照先进先出的原则进行的: 实现队列 PHP实现队列:第一个元素作为队头,最后一个元素作为队尾 <?php /** * 队列就是这么简单 * * @link */ $array =  array('PHP', 'JAVA'); array_...

    2016年10月26日
    0139
  • 字符串的布尔类型:bool, boolean

    bool和boolean用于标识某种只有两个状态值的数据:true,false——吃没吃,去没去,有没有。。。。。 在应用出,我们常常会(需要)直接将一个数据(可能是各种其他类型)当作一个布尔值来进行判断。 那么此时其实发生...

    2018年3月17日
    0141
  • php生成微信红包数组

    php生成微信红包数组 源代码 代码图 效果图...

    2018年4月27日
    0118
  • 关于php curl异步并发请求http

    先来看下同步的代码以及请求时间。$start_time=date("h:i:sa"); for ($i=0; $i <100 ; $i++) { $urls[]="http://www.downxia.com/downinfo/2315".$i.".html"; GetTitle(geturl(&qu...

    2022年6月27日
    071