非常全面的php日期时间运算汇总_php技巧
实例讲解之前,先来介绍几个核心函数:
mktime 函数
mktime() 函数返回一个日期的 Unix 时间戳。
参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。
参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。
语法:mktime(hour,minute,second,month,day,year,is_dst)
参数 描述
hour 可选。规定小时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定用数字表示的月。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
is_dst 可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。
自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。
例子:mktime() 函数对于日期运算和验证非常有用。它可以自动校正越界的输入:
<?php echo(date("M-d-Y",mktime(0,0,0,12,36,2001))); echo(date("M-d-Y",mktime(0,0,0,14,1,2001))); echo(date("M-d-Y",mktime(0,0,0,1,1,2001))); echo(date("M-d-Y",mktime(0,0,0,1,1,99))); ?>
输出:
Jan-05-2002 Feb-01-2002 Jan-01-2001 Jan-01-1999
strtotime 函数
strtotime() 函数将任何英文文本的日期时间描述解析为 Unix 时间戳。
语法:strtotime(time,now)
参数 描述
time 规定要解析的时间字符串。
now 用来计算返回值的时间戳。如果省略该参数,则使用当前时间。
一周之后: strtotime("+1 week") ;
一周之前: strtotime("-1 week") ;
一月之后: strtotime("+1 months") ;
一天之后: strtotime("+1 days") ;
30秒之后 strtotime( " +30 seconds " );
20分钟之后 strtotime( " +20 minutes " );
12个小时之后 strtotime( " +12 hours " );
date 函数
date() 函数格式化一个本地时间/日期。
语法
date(format,timestamp)
date_default_timezone_set 函数
date_default_timezone_set() 函数设置用在脚本中所有日期/时间函数的默认时区。
date_default_timezone_set(timezone)
实例
第一种情况是没有数据库,只是得到的日期值进行比较的话,那就得完全用php的时间日期函数计算了,如下:
比如要计算2015-9-5到2015-9-18还有多少天:
<?php $startdate=strtotime("2015-9-5"); $enddate=strtotime("2015-9-18"); //上面的php时间日期函数已经把日期变成了时间戳,就是变成了秒。这样只要让两数值相减,然后把秒变成天就可以了,比较的简单,如下: $days=round(($enddate-$startdate)/3600/24) ; echo $days; //days为得到的天数; ?>
第二种 孩子的成长
<? date_default_timezone_set('Asia/Shanghai'); //以上一句为设置时区,其实不设也行,但是zde debug的时候会有提示,说什么不安全的函数…添上吧。 echo date('Y-m-d H:i:s').' 今天是'.date('Y').'年的第'.date('W').'周'; $stime='2005-11-03 10:08'; echo "<br/><br/>***自出生(<font color=blue>$stime</font>)以来…:<br/><br/>"; echo "今天是第<font color=red><b>".Lnbsp(daysofnow($stime),3)."</b></font>天<br/>"; echo "今天是第<font color=red><b>".Lnbsp(weeksofnow($stime),3)."</b></font>周<br/>"; echo "今天是第<font color=red><b>".Lnbsp(monthsofnow($stime),3)."</b></font>个月<br/>"; echo "今天是第<font color=red><b>".Lnbsp(yearsofnow($stime),3)."</b></font>年<br/>"; /* $output=sprintf(" 今天是第<font color=red><b>%03d</b></font>天<br/>今天是第< font color=red><b>%03d</b></font>周<br/>今天是第< font color=red><b>%03d</b></font>个月<br/>今天是第< font color=red><b>%03d</b></font>年<br/& gt;",daysofnow($stime),weeksofnow($stime),monthsofnow($stime),yearsofnow($stime)); echo $output; */ function weeksofnow($stime) { $ftime=strtotime($stime); $fweeks=date('w',$ftime); if ($fweeks==0) $fweeks=7; $nweeks=date('w'); if ($nweeks==0) $nweeks=7; $ftemp=strtotime(date('Y-m-d 00:00:00',$ftime))-$fweeks*60*60*24; $ntemp=strtotime(date('Y-m-d 00:00:00',time()))+(7-$nweeks)*60*60*24; //echo date('w',$ftemp)."<br/>....<br/>".date('w',$ntemp)."<br/>"; return ($ntemp-$ftemp)/60/60/24/7; } function daysofnow($stime) { $ftime=strtotime($stime); return ceil(abs((time()-$ftime)/(60*60*24))); } function monthsofnow($stime) { $ftime=strtotime($stime); $fmonth=date('m',$ftime); $fyear=date('Y',$ftime); $nmonth=date('m'); $nyear=date('Y'); $result=($nyear-$fyear)*12+$nmonth-$fmonth+1; return $result; } function yearsofnow($stime) { $ftime=strtotime($stime); $fyear=date('Y',$ftime); $nyear=date('Y'); return $nyear-$fyear+1; } // 下面的函数只是加空格用的,不是核心内容,只为美观 function Lnbsp($data,$num) { $result=trim($data); for($i=$num;$i>=strlen($data);$i--) { $result=' '.$result; } return $result; } ?>
第三种 情况:明天,下个月和明年的日期,就可以用以下的代码:
$tomorrow = date('Y-m-d',mktime (0,0,0,date("m"),date("d")+1,date("Y"))); $nextmonth = date('Y-m',mktime (0,0,0,date("m")+1,date("d")+1,date("Y"))); $nextyear = date('Y',mktime (0,0,0,date("m"),date("d"),date("Y")+1)); echo $tomorrow.'<br/>'; echo $nextmonth.'<br/>'; echo $nextyear.'<br/>';
第四种情况:工作时间(刨除假日)
<? $startDate="2001-12-12"; $endDate="2002-11-1"; $holidayArr=array("05-01","05-02","10-01","10-01","10-02","10-03","10-04","10-05","01-26","01-27","01-28","01-29"); //假期日期数组,比方国庆,五一,春节等 $endWeek=2; //周末是否双休.双休为2,仅仅星期天休息为1,没有休息为0 $beginUX=strtotime($startDate); $endUX=strtotime($endDate); for($n=$beginUX;$n<=$endUX;$n=$n+86400){ $week=date("w",$n); $MonDay=date("m-d",$n); if($endWeek){//去处周末休息 if($endWeek==2){ if($week==0||$week==6) continue; } if($endWeek==1){ if($week==0) continue; } } if(in_array($MonDay,$holidayArr)) continue; $totalHour+=10;//每天工作10小时 } echo "开始日期:$startDate<BR>"; echo "结束日期:$endDate<BR>"; echo "共花了".$totalHour."小时"; ?>
第五种情况:给出秒算小时
<?php function transform($sec){ $output = ''; $hours = floor($sec / 3600); $remainSeconds = $sec % 3600; $minutes = floor($remainSeconds / 60); $seconds = $sec - $hours * 3600 - $minutes * 60; if($sec >= 3600){ $output .= $hours.' h / '; $output .= $minutes.' m / '; } if($sec >= 60 && $sec < 3600){ $output .= $minutes.' m / '; } return $output .= $seconds.' s '; } echo transform(3231803); ?>
以上就是为大家提供的php日期时间运算全部实例,希望对大家的学习有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Lors de l'écriture de programmes en PHP, nous avons souvent besoin de convertir des dates en horodatages, ou des horodatages en dates. Ce processus est très simple en PHP et peut être facilement réalisé en utilisant seulement quelques fonctions simples. Dans cet article, nous expliquerons comment convertir une date PHP en horodatage, tout en discutant également de certains scénarios d'utilisation courants.

Méthode de jugement : 1. Utilisez l'instruction "strtotime("year-month-day")" pour convertir l'année, le mois et le jour donnés au format d'horodatage ; 2. Utilisez l'instruction "date("z", timestamp)+1" ; calculer Spécifie le jour de l'année où l'horodatage est spécifié. Le nombre de jours renvoyé par date() est calculé à partir de 0, le nombre réel de jours doit donc être ajouté à cette base de 1.

En PHP, vous pouvez utiliser la fonction date() pour obtenir la date et le jour actuels de la semaine. Omettez simplement le deuxième paramètre de la fonction date() et définissez le premier paramètre sur "Y-m-d H:i:s" pour obtenir la date actuelle, la syntaxe est "date("Y-m-d H:i:s")" ; le premier paramètre est mis à "N", le jour de la semaine peut être obtenu avec la syntaxe "date("N")". "N" renvoie le jour de la semaine sous forme de nombre au format ISO-8601, allant de 1 (pour lundi) à 7 (pour dimanche).

Le calcul des différences de dates est très courant dans les applications pratiques. Par exemple, lors du développement de sites Web, nous pouvons avoir besoin de calculer la différence entre deux dates afin d'afficher correctement les horodatages, les comptes à rebours, etc. Lors du calcul de la différence de date, nous devons souvent calculer la différence de mois entre deux dates. Voyons comment utiliser PHP pour calculer la différence de mois entre les dates.

PHP est un langage de programmation populaire largement utilisé dans le développement Web. La conversion entre chaînes et dates est une opération très courante en PHP. Dans cet article, nous verrons comment convertir une chaîne PHP au format d'heure.

En PHP, vous pouvez utiliser la fonction date() pour convertir un horodatage en date/heure. Cette fonction peut formater l'horodatage en une date et une heure plus lisibles ; le format de syntaxe est "date(format, timestamp)", le paramètre format. est utilisé pour spécifier le caractère de formatage et définir le format de date à convertir, tel que "Y-m-d H:i:s", qui convertit l'horodatage au format "année-mois-jour heure:minute:seconde".

En PHP, vous pouvez utiliser la fonction date() pour convertir les secondes au format heures, minutes et secondes, avec la syntaxe "date("H:i:s", timestamp)". L'horodatage est le nombre de secondes écoulées depuis l'époque Unix jusqu'à l'heure actuelle, et la fonction date() peut formater l'horodatage et convertir l'horodatage en une chaîne de date dans un format spécifié via le caractère de format défini dans le premier paramètre. Le caractère de format « H » représente l'horloge de 24 heures, et le caractère « h » peut également être utilisé, qui représente l'horloge de 12 heures ; le caractère de format « i » représente la valeur des minutes avec les zéros non significatifs et le caractère de format. "s" représente la deuxième valeur avec des zéros non significatifs.

Dans le développement PHP, nous rencontrons souvent la situation de convertir des mois numériques en mois anglais. Il s'agit d'une exigence courante car différents pays et langues utilisent différentes manières de représenter les mois. Par exemple, aux États-Unis et au Royaume-Uni, les gens utilisent généralement les noms de mois en anglais pour indiquer l'heure, tandis qu'en France et en Allemagne, les gens utilisent généralement les noms de mois dans leur langue locale. Cet article explique comment utiliser PHP pour convertir les numéros de mois en noms de mois anglais.
