Maison développement back-end tutoriel php 非常全面的php日期时间运算汇总_php技巧

非常全面的php日期时间运算汇总_php技巧

May 16, 2016 pm 08:05 PM
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() 函数对于日期运算和验证非常有用。它可以自动校正越界的输入:  

<&#63;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))); 
&#63;> 
Copier après la connexion

输出:

Jan-05-2002 
Feb-01-2002 
Jan-01-2001 
Jan-01-1999 
Copier après la connexion

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还有多少天:

<&#63;php 
$startdate=strtotime("2015-9-5"); 
$enddate=strtotime("2015-9-18"); //上面的php时间日期函数已经把日期变成了时间戳,就是变成了秒。这样只要让两数值相减,然后把秒变成天就可以了,比较的简单,如下: 
$days=round(($enddate-$startdate)/3600/24) ; 
echo $days; //days为得到的天数; 
&#63;> 
Copier après la connexion

第二种 孩子的成长

 <&#63; 
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; 
} 
&#63;> 
Copier après la connexion

第三种 情况:明天,下个月和明年的日期,就可以用以下的代码:

$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/>'; 
Copier après la connexion

第四种情况:工作时间(刨除假日)

<&#63; 
$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."小时"; 
&#63;> 
Copier après la connexion


第五种情况:给出秒算小时

<&#63;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); 
 
&#63;> 
Copier après la connexion

以上就是为大家提供的php日期时间运算全部实例,希望对大家的学习有所帮助。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment convertir la date en horodatage en php Comment convertir la date en horodatage en php Mar 24, 2023 am 10:57 AM

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.

Comment déterminer le jour de l'année en fonction de l'année, du mois et du jour en php Comment déterminer le jour de l'année en fonction de l'année, du mois et du jour en php Apr 22, 2022 pm 05:02 PM

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.

Comment obtenir la date et le jour actuels de la semaine en php Comment obtenir la date et le jour actuels de la semaine en php Jan 07, 2023 pm 04:27 PM

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).

Comment calculer la différence en mois entre les dates en utilisant PHP Comment calculer la différence en mois entre les dates en utilisant PHP Mar 21, 2023 pm 02:52 PM

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.

Comment convertir une chaîne au format heure en php Comment convertir une chaîne au format heure en php Mar 27, 2023 pm 04:16 PM

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.

Comment convertir l'horodatage en heure en php Comment convertir l'horodatage en heure en php Jan 07, 2023 pm 03:17 PM

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".

Comment convertir des secondes en heures, minutes et secondes en php Comment convertir des secondes en heures, minutes et secondes en php Jun 13, 2022 pm 05:42 PM

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.

Comment convertir un mois numérique en mois anglais en php Comment convertir un mois numérique en mois anglais en php Mar 21, 2023 pm 02:07 PM

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.

See all articles