php获取一些时间实现方法(实践)

简介: php获取一些时间实现方法(实践) 这几天在开发的时候遇到的一些时间上的问题,整理了一下,分享给大家,可以看看,有需要的话可以利用一下。 1.获取上个月第一天及最后一天. echo date('Y-m-01', strtotime('-1 month')); echo "<br/>".

php获取一些时间实现方法(实践)

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

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

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

上面的方法有些问题,做下修改:

上个月第一天:

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);
}

上月日期需要先获取一个时间戳,然后在月份上-1OK了,超智能的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月就直接月份+1OK啦。

总得来说,日期函数太强大了。

原文地址http://www.bieryun.com/3194.html

相关文章
|
27天前
|
安全 Java 编译器
深入理解PHP 8.0新特性及其对开发的影响Java中的多线程编程:从理论到实践
【5月更文挑战第27天】在这篇文章中,我们将详细探讨PHP 8.0的新特性以及它们如何影响开发者的工作流程。我们将深入研究这些新特性,包括JIT编译器,联合类型,命名参数,以及更多的错误处理机制。我们还将讨论这些新特性如何提高代码的可读性和性能,以及它们如何改变我们编写和维护PHP应用程序的方式。 【5月更文挑战第27天】在现代计算机科学中,多线程编程是一个重要的概念,它允许多个线程在同一时间内运行,从而提高了程序的效率和性能。本文将深入探讨Java中的多线程编程,包括其理论基础,实现方法,以及一些常见的问题和解决方案。我们将通过实例来理解如何创建和管理线程,以及如何使用Java的并发工具来
|
3天前
|
缓存 应用服务中间件 PHP
PHP性能优化策略与实践
PHP作为一种广泛应用于Web开发的脚本语言,在实际应用中面临着性能优化的挑战。本文探讨了几种PHP性能优化的策略与实践,包括代码优化、缓存机制、数据库优化以及服务器配置等方面,旨在帮助开发者更好地理解和应用这些优化技术,提升PHP应用程序的性能和响应速度。
9 1
|
8天前
|
PHP UED
PHP中的异常处理:理论与实践
【6月更文挑战第14天】本文将深入探讨PHP中的异常处理机制,包括其理论基础和实际应用。我们将从基本的异常处理概念开始,然后逐步深入到如何在PHP中有效地使用它们。我们还将讨论一些常见的错误类型和如何避免它们,以及如何编写健壮的代码来处理可能的错误。最后,我们将通过一些实际的例子来演示如何在PHP中实现异常处理。
|
8天前
|
JSON PHP 数据格式
蓝易云 - PHP用CURL发送Content-type为application/json的POST请求方法
在这段代码中,我们首先创建了一个包含我们要发送的数据的数组,并使用 `json_encode`函数将其转换为JSON格式。然后,我们初始化了一个cURL会话,并设置了一些选项,包括POST请求方法、要发送的数据、返回结果和HTTP头部信息。最后,我们执行了cURL请求并关闭了会话。
14 2
|
11天前
|
编译器 PHP 开发者
PHP 8.0 新特性解析与实践
PHP 8.0的发布带来了许多令人激动的新特性和改进,本文将深入解析PHP 8.0的一些重要特性,包括JIT编译器、命名参数、属性声明的初始化等,并结合实际案例进行详细讨论,帮助开发者更好地理解和应用这些新特性。
20 5
|
22天前
|
PHP UED 开发者
PHP中的异常处理:深入理解与实践
【5月更文挑战第31天】在编程的世界中,异常处理是维护代码稳定性和用户体验的关键。本文将深入探讨PHP中的异常处理机制,从基础概念到高级应用,带领读者理解如何在面对错误和意外情况时保持程序的健壮性和灵活性。我们将通过具体案例,展示如何有效地使用try-catch语句,自定义异常类,以及如何在项目中实施最佳实践来优雅地处理异常。
|
1天前
|
缓存 编译器 API
探索PHP 8的新特性及其对开发实践的影响
随着PHP 8的发布,这个广受欢迎的服务器端脚本语言迎来了重大更新。本文将深入探讨PHP 8引入的关键新特性,以及这些变化如何影响日常的开发工作。我们将从JIT编译器的加入、联合类型和属性的引入、到匹配表达式等语言层面的改进,逐一分析它们给代码编写和性能优化带来的具体好处。同时,我们也会讨论这些新特性在现实项目中的应用示例,帮助开发者更好地理解和运用PHP 8的新工具。
|
26天前
|
设计模式 敏捷开发 监控
深入探究软件自动化测试的策略与实践深入理解PHP中的命名空间
【5月更文挑战第27天】 在软件开发周期中,确保代码质量是至关重要的一环。随着敏捷开发和持续集成的普及,自动化测试成为提升效率和保障软件质量的重要手段。本文将详细探讨自动化测试策略的制定、工具选择以及在实际项目中的执行过程。我们将从自动化测试的基本原则出发,分析不同类型和级别的自动化测试案例,并结合具体实例,讨论如何优化测试流程,减少冗余,提高测试覆盖率和准确性。通过阅读本文,读者将获得一套实用的自动化测试实施框架,以支持其在快速迭代的开发环境中维护高水平的软件品质。 【5月更文挑战第27天】在本文中,我们将探讨PHP中的命名空间(namespace)的概念、用途和实现方式。通过详细解释命名
|
8天前
|
测试技术 数据库连接 PHP
PHP编程中的关键技巧与实践
本文将介绍一些PHP编程中的关键技巧和实践,帮助开发者提高代码的可读性、可维护性和性能。通过深入讨论常见问题和解决方案,读者将能够更好地理解如何优化自己的PHP代码,并在实际项目中应用这些技巧。
|
10天前
|
Web App开发 API PHP
PHP封装的不错的一个Curl方法
This is a PHP function named `teacher_curl` that wraps around the cURL library for making HTTP requests. The function initializes a cURL session, sets various options such as disabling SSL verification, sets headers, handles POST data
16 0