Heim Backend-Entwicklung PHP-Tutorial 非常全面的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;> 
Nach dem Login kopieren

输出:

Jan-05-2002 
Feb-01-2002 
Jan-01-2001 
Jan-01-1999 
Nach dem Login kopieren

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;> 
Nach dem Login kopieren

第二种 孩子的成长

 <&#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;> 
Nach dem Login kopieren

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

$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/>'; 
Nach dem Login kopieren

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

<&#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;> 
Nach dem Login kopieren


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

<&#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;> 
Nach dem Login kopieren

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

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So konvertieren Sie ein Datum in einen Zeitstempel in PHP So konvertieren Sie ein Datum in einen Zeitstempel in PHP Mar 24, 2023 am 10:57 AM

Beim Schreiben von Programmen in PHP müssen wir häufig Datumsangaben in Zeitstempel oder Zeitstempel in Datumsangaben umwandeln. Dieser Vorgang ist in PHP sehr einfach und kann mit nur wenigen einfachen Funktionen problemlos durchgeführt werden. In diesem Artikel behandeln wir die Konvertierung eines PHP-Datums in einen Zeitstempel und besprechen gleichzeitig einige häufige Verwendungsszenarien.

So erhalten Sie das aktuelle Datum und den Wochentag in PHP So erhalten Sie das aktuelle Datum und den Wochentag in PHP Jan 07, 2023 pm 04:27 PM

In PHP können Sie die Funktion date() verwenden, um das aktuelle Datum und den Wochentag abzurufen. Lassen Sie einfach den zweiten Parameter der Funktion date() weg und setzen Sie den ersten Parameter auf „Y-m-d H:i:s“, um das aktuelle Datum zu erhalten. Die Syntax lautet „date("Y-m-d H:i:s"); Wird der erste Parameter auf „N“ gesetzt, kann der Wochentag mit der Syntax „date(“N“) ermittelt werden. „N“ gibt den Wochentag als Zahl im ISO-8601-Format im Bereich von 1 (für Montag) bis 7 (für Sonntag) zurück.

So bestimmen Sie den Tag des Jahres anhand von Jahr, Monat und Tag in PHP So bestimmen Sie den Tag des Jahres anhand von Jahr, Monat und Tag in PHP Apr 22, 2022 pm 05:02 PM

Beurteilungsmethode: 1. Verwenden Sie die Anweisung „strtotime(„Jahr-Monat-Tag“)“, um das angegebene Jahr, den angegebenen Monat und den angegebenen Tag in das Zeitstempelformat zu konvertieren. 2. Verwenden Sie die Anweisung „Datum(„z“, Zeitstempel)+1“. zu berechnen Gibt den Tag des Jahres an, an dem der Zeitstempel angegeben wird. Die von date() zurückgegebene Anzahl der Tage wird aus 0 berechnet, daher muss die tatsächliche Anzahl der Tage um 1 zu dieser Basis addiert werden.

So berechnen Sie die Differenz in Monaten zwischen Datumsangaben mit PHP So berechnen Sie die Differenz in Monaten zwischen Datumsangaben mit PHP Mar 21, 2023 pm 02:52 PM

Die Berechnung von Datumsunterschieden ist in praktischen Anwendungen sehr verbreitet. Beispielsweise müssen wir bei der Website-Entwicklung möglicherweise die Differenz zwischen zwei Datumsangaben berechnen, um Zeitstempel, Countdowns usw. korrekt anzuzeigen. Bei der Berechnung der Datumsdifferenz müssen wir häufig die Monatsdifferenz zwischen zwei Datumsangaben berechnen. Lassen Sie uns vorstellen, wie Sie mit PHP die Monatsdifferenz zwischen Datumsangaben berechnen.

So konvertieren Sie den digitalen Monat in PHP in einen englischen Monat So konvertieren Sie den digitalen Monat in PHP in einen englischen Monat Mar 21, 2023 pm 02:07 PM

Bei der PHP-Entwicklung stoßen wir häufig auf die Situation, digitale Monate in englische Monate umzuwandeln. Dies ist eine häufige Anforderung, da verschiedene Länder und Sprachen unterschiedliche Darstellungsarten für Monate verwenden. Beispielsweise verwenden die Menschen in den Vereinigten Staaten und im Vereinigten Königreich normalerweise englische Monatsnamen zur Zeitangabe, während in Frankreich und Deutschland normalerweise Monatsnamen in ihren Landessprachen verwendet werden. In diesem Artikel erfahren Sie, wie Sie mit PHP Monatszahlen in englische Monatsnamen umwandeln.

So konvertieren Sie einen String in PHP in ein Zeitformat So konvertieren Sie einen String in PHP in ein Zeitformat Mar 27, 2023 pm 04:16 PM

PHP ist eine beliebte Programmiersprache, die in der Webentwicklung weit verbreitet ist. Das Konvertieren zwischen Zeichenfolgen und Datumsangaben ist eine sehr häufige Operation in PHP. In diesem Artikel besprechen wir, wie man PHP-Strings in das Zeitformat konvertiert.

So konvertieren Sie Zeitstempel in PHP in Zeit So konvertieren Sie Zeitstempel in PHP in Zeit Jan 07, 2023 pm 03:17 PM

In PHP können Sie die Funktion date() verwenden, um einen Zeitstempel in ein besser lesbares Datum und eine besser lesbare Uhrzeit zu konvertieren. Das Syntaxformat lautet „Datum (Format, Zeitstempel)“. wird verwendet, um das Formatierungszeichen anzugeben und das zu konvertierende Datumsformat festzulegen, z. B. „Y-m-d H:i:s“, wodurch der Zeitstempel in das Format „Jahr-Monat-Tag Stunde:Minute:Sekunde“ konvertiert wird.

So konvertieren Sie Sekunden in Stunden, Minuten und Sekunden in PHP So konvertieren Sie Sekunden in Stunden, Minuten und Sekunden in PHP Jun 13, 2022 pm 05:42 PM

In PHP können Sie die Funktion date() verwenden, um Sekunden mit der Syntax „date(“H:i:s“, timestamp)“ in das Stunden-, Minuten- und Sekundenformat umzuwandeln. Der Zeitstempel ist die Anzahl der Sekunden seit der Unix-Epoche bis zur aktuellen Zeit. Die Funktion date() kann den Zeitstempel formatieren und über das im ersten Parameter festgelegte Formatzeichen in eine Datumszeichenfolge in einem angegebenen Format konvertieren. Das Formatzeichen „H“ stellt das 24-Stunden-Format dar, es kann auch das Formatzeichen „h“ verwendet werden, das das 12-Stunden-Format darstellt; das Formatzeichen „i“ stellt den Minutenwert mit führenden Nullen dar, und das Formatzeichen „s“ stellt den Sekundenwert mit führenden Nullen dar.

See all articles