`

PHP自定义时间函数

    博客分类:
  • PHP
阅读更多

1.php取本月本周或者下月下周的开始到结束时间

 

<?php
@date_default_timezone_set('Asia/Chongqing');

$now_time = time();
$date=date("Y-m-d",$now_time);

function get_date($date,$t='d',$n=0)
{
if($t=='d'){
   $firstday = date('Y-m-d 00:00:00',strtotime("$n day"));
   $lastday = date("Y-m-d 23:59:59",strtotime("$n day"));

}elseif($t=='w'){
   if($n!=0){$date = date('Y-m-d',strtotime("$n week"));}
   $lastday = date("Y-m-d 00:00:00",strtotime("$date Sunday"));
   $firstday = date("Y-m-d 23:59:59",strtotime("$lastday -6 days"));

}elseif($t=='m'){
   if($n!=0){$date = date('Y-m-d',strtotime("$n months"));}
   $firstday = date("Y-m-01 00:00:00",strtotime($date));
   $lastday = date("Y-m-d 23:59:59",strtotime("$firstday +1 month -1 day")); 
}
    return array($firstday,$lastday);
}

$day1   = get_date($date,'d');
$day2   = get_date($date,'d',-1);
$week1 = get_date($date,'w');
$week2 = get_date($date,'w',-1);
$month1 = get_date($date,'m');
$month2 = get_date($date,'m',-1);

echo '<pre>';
print_r($day1);//今天
print_r($day2);//昨天
print_r($week1);//这周
print_r($week2);//上周
print_r($month1);//这月
print_r($month2);//上月
echo '</pre>';
?>

最后一个参数$n如果为负数代表之前日期,为正数代表之后日期,比如-3代表三周前或三天前或三月前,3代表三周后或三天后或三月后

以上代码取月份有误

function get_date($t='d',$n=0)
{
   if($this->rq_dt['yesterday']){
    $n = $n-1;
    $lastdayformat = 'Y-m-d 23:59:59';
   }else{
    $date = time();
    $lastdayformat = 'Y-m-d H:i:s';
    $h = date('H',$date);
    $i = date('i',$date);
    $s = date('s',$date);
   }
   if($t=='d'){
    $firstday = date('Y-m-d 00:00:00',strtotime("$n day"));
    $lastday = date($lastdayformat,strtotime("$n day"));

   }elseif($t=='w'){
    $lastday = date($lastdayformat,strtotime("$n week"));
    $firstday = date("Y-m-d 00:00:00",strtotime("$lastday -1 Monday"));

   }elseif($t=='m'){
    $firstday = date('Y-m-d H:i:s',mktime(0,0,0,date("m")+$n,1,date('Y')));
    $lastday = date("Y-m-d $h:$i:$s",mktime(0,0,-1,date("m")+1+$n,1,date('Y')));
   }
   return array($firstday,$lastday);
}

 

2.php unixtime 与 date 转换

 

function makeTime()
    {
        $selectTime = time();
                 return date("Y",$selectTime)."-".date("m",$selectTime)."-".date("d",$selectTime)." ".date("H",$selectTime).":".date("i",$selectTime).":".date("s",$selectTime);
    }

 将当前 unixtime 转换成当前的 年月日时分秒


将任何英文文本的日期时间描述解析为 Unix 时间戳
echo  strtotime("now"), "\n";
echo  strtotime("10 September 2000"), "\n";
echo  strtotime("+1 day"), "\n";
echo  strtotime("+1 week"), "\n";
echo  strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo  strtotime("next Thursday"), "\n";
echo  strtotime("last Monday"), "\n";
echo strtotime("2010-04-16 16:37:12");
 
To use the below, call it like a normal function. There are four arguments. The first determines what you want to measure the date difference in - years, months, quarters, etc - and the allowed values of this are listed in the first few lines of the function. The next two are the dates themselves. Any valid date should work just fine. You can also use timestamps as dates, although if you do, you must set the last of the four arguments to “true”. You can call it like so:
example:
datediff(”m”,’1978-10-11′,date(”Y-m-d”))
echo datediff(’w', ‘9 July 2003′, ‘4 March 2004′, false);
function datediff($interval, $datefrom, $dateto, $using_timestamps = false) {
/*
$interval can be:
yyyy - Number of full years
q - Number of full quarters
m - Number of full months
y - Difference between day numbers
(eg 1st Jan 2004 is “1″, the first day. 2nd Feb 2003 is “33″. The datediff is “-32″.)
d - Number of full days
w - Number of full weekdays
ww - Number of full weeks
h - Number of full hours
n - Number of full minutes
s - Number of full seconds (default)
*/

if (!$using_timestamps) {
$datefrom = strtotime($datefrom, 0);
$dateto = strtotime($dateto, 0);
}
$difference = $dateto - $datefrom; // Difference in seconds

switch($interval) {

case ‘yyyy’: // Number of full years

$years_difference = floor($difference / 31536000);
if (mktime(date(”H”, $datefrom), date(”i”, $datefrom), date(”s”, $datefrom), date(”n”, $datefrom), date(”j”, $datefrom), date(”Y”, $datefrom)+$years_difference) > $dateto) {
$years_difference–;
}
if (mktime(date(”H”, $dateto), date(”i”, $dateto), date(”s”, $dateto), date(”n”, $dateto), date(”j”, $dateto), date(”Y”, $dateto)-($years_difference+1)) > $datefrom) {
$years_difference++;
}
$datediff = $years_difference;
break;

case “q”: // Number of full quarters

$quarters_difference = floor($difference / 8035200);
while (mktime(date(”H”, $datefrom), date(”i”, $datefrom), date(”s”, $datefrom), date(”n”, $datefrom)+($quarters_difference*3), date(”j”, $dateto), date(”Y”, $datefrom)) < $dateto) {
$months_difference++;
}
$quarters_difference–;
$datediff = $quarters_difference;
break;

case “m”: // Number of full months

$months_difference = floor($difference / 2678400);
while (mktime(date(”H”, $datefrom), date(”i”, $datefrom), date(”s”, $datefrom), date(”n”, $datefrom)+($months_difference), date(”j”, $dateto), date(”Y”, $datefrom)) < $dateto) {
$months_difference++;
}
$months_difference–;
$datediff = $months_difference;
break;

case ‘y’: // Difference between day numbers

$datediff = date(”z”, $dateto) - date(”z”, $datefrom);
break;

case “d”: // Number of full days

$datediff = floor($difference / 86400);
break;

case “w”: // Number of full weekdays

$days_difference = floor($difference / 86400);
$weeks_difference = floor($days_difference / 7); // Complete weeks
$first_day = date(”w”, $datefrom);
$days_remainder = floor($days_difference % 7);
$odd_days = $first_day + $days_remainder; // Do we have a Saturday or Sunday in the remainder?
if ($odd_days > 7) { // Sunday
$days_remainder–;
}
if ($odd_days > 6) { // Saturday
$days_remainder–;
}
$datediff = ($weeks_difference * 5) + $days_remainder;
break;

case “ww”: // Number of full weeks

$datediff = floor($difference / 604800);
break;

case “h”: // Number of full hours

$datediff = floor($difference / 3600);
break;

case “n”: // Number of full minutes

$datediff = floor($difference / 60);
break;

default: // Number of full seconds (default)

$datediff = $difference;
break;
}

return $datediff;

}
 
4.php取当年任意一周的起止时间
function getDateOfWeekNum($date, $n)
	{
		$cur_week = date('W', strtotime($date));
		$t = strtotime("+1 Monday $date");
		
		$b = strtotime("+$n week -$cur_week week", $t);
		
		return $b;
	}
 

 

分享到:
评论

相关推荐

    PHP自定义公共函数

    自定义函数如`format_date($datetime, $format)`可以方便地将日期时间对象转换为指定格式的字符串。例如, `$format = 'Y-m-d H:i:s'`可以将日期时间格式化为"年-月-日 时:分:秒"。 3. **验证邮箱格式**: 邮箱...

    自定义PHP加密解密函数

    通过自定义的加密函数,可再解密,加密过程需要一个关健字,这个关键字用来解密,就算是别人看到了你的解密函数但是不知道关键字是多少照样无法解密。

    (第七讲) PHP函数和自定义函数

    【PHP函数和自定义函数详解】 在编程领域,函数是代码组织的重要手段,它将一组相关的操作封装起来,便于重复使用和模块化编程。在PHP中,函数同样扮演着至关重要的角色,允许开发者以高效的方式处理任务。接下来,...

    PHP学习笔记之自定义函数

    在PHP编程语言中,自定义函数是开发过程中不可或缺的一部分,它们允许我们封装代码,提高代码的可重用性和可维护性。这篇“PHP学习笔记之自定义函数”着重讲解了如何在PHP中创建、调用以及优化自定义函数。 首先,...

    php自定义hash函数实例

    总结来说,本文介绍的PHP自定义哈希函数实例展示了哈希函数的基本思想和实现方法,对于初学者而言,是理解哈希算法工作原理的一个良好开端。然而,在面对真实世界的安全挑战时,应当选择经过严格验证的加密算法,以...

    PHP100视频教程07:PHP函数和自定义函数.rar

    在本套"PHP100视频教程07:PHP函数和自定义函数"中,我们将深入探讨PHP编程中至关重要的函数概念。函数是程序设计中的基础模块,它们封装了特定的功能,可以被多次调用,提高了代码的复用性和可维护性。在PHP中,...

    PHP常用函数学习

    ### PHP常用函数学习 #### 字符串函数 在PHP中,字符串函数是非常重要的组成部分,用于对文本数据进行处理。下面详细介绍几种常用的字符串处理函数。 ##### 查找字符位置函数 1. **`strpos()`**:此函数用于寻找...

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    PHP自定义大小验证码函数 PHP获取.NET发出的WEBSERVICE数据 PHP获取FLV文件播放时间函数 PHP获取一年内所有周的开始和结束日期 php获取指定日期所在周的开始和结束日期 PHP读取文件前几个字节 判断文件类型函数...

    分享几种好用的PHP自定义加密函数(可逆/不可逆)

    本文将介绍两种实用的PHP自定义加密解密函数,一种是针对ID的可逆加密,另一种是带有盐值参数的可逆加密。 首先,我们来看第一种加密函数,它主要用于对ID进行加密,同时也适用于生成邀请码等场景。这种加密方式...

    php自定义函数截取汉字长度

    以上对PHP中自定义函数截取汉字长度的知识点进行了详细阐述,包括其必要性、实现原理、方法示例以及注意事项。掌握这些知识能够有效地帮助开发人员解决处理多语言文本时遇到的字符串截取问题,提高代码的健壮性和...

    织梦dede 加强获取arcurl各种情况 自定义函数

    如何调用自定义函数################################ 1.而在模板中我们的调用方式的写法也有所改变,代码如下: {dede:loop table='dede_archives' sort='' row='4' if=''} &lt;li&gt;&lt;a href='[field:id function=...

    Laravel中如何增加自定义全局函数详解

    这将生成一个新的 `vendor/composer/autoload_files.php` 文件,其中包含了 `functions.php` 文件,使得每次 Laravel 应用启动时都能自动加载这些自定义函数。 **自定义函数示例** 在 `functions.php` 文件中,...

    PHP项目开发中最常用的自定义函数整理.doc

    以下是一些在PHP工程开发中最常用的自定义函数,它们涵盖了数据处理、安全防护、随机生成、时间转换以及网络请求等方面。 1. `alert($msg)`: 这个函数主要用于简单的错误提示或信息输出,通过`echo`直接在页面上...

    PHP自定义函数实现数组比较功能示例

    总结来说,本文介绍了一个用于数组比较的PHP自定义函数示例,通过这个示例可以掌握数组比较的基本方法,并且结合文章的其它部分,可以进一步学习PHP中的数组操作、字符串处理、错误处理、面向对象编程以及数据库操作...

    PHP程序设计-3期(KC016) 2.10.1自定义函数课后习题.doc

    在PHP程序设计中,自定义函数是编程的基本...总之,本课后习题旨在巩固PHP自定义函数的概念,并实际应用到闰年的判断问题上。通过这样的练习,学习者可以更好地掌握PHP的函数使用技巧,为后续的编程学习打下坚实基础。

    Thinkphp模板中使用自定义函数的方法

    首先,自定义函数必须放置在项目应用目录下的`common`文件夹中的`common.php`文件中。这是关键步骤,因为框架会自动加载这个文件,从而使定义的函数在模板中可调用。例如,你可以创建一个名为`Cate`的函数,用于根据...

    PHP项目开发中最常用的自定义函数整理

    以下是根据提供的文件内容整理出的PHP自定义函数的知识点,每个函数都有其特定的用途。 1. alert提示函数 函数alert用于生成浏览器端的警告提示框,用于调试或向用户展示信息。这是一个非常实用的调试工具,类似于...

    PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例

    本篇文章将深入探讨如何使用自定义函数实现类似`assign()`和`extract()`的功能,以便在不依赖特定框架的情况下完成模板变量的分配。 `assign()`函数通常用于将数组或变量分配到模板,以便在模板文件中使用。在这个...

Global site tag (gtag.js) - Google Analytics