非常全面的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日期时间运算全部实例,希望对大家的学习有所帮助。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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.

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.

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.

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.

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.

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.

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.

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.
