Heim >Backend-Entwicklung >PHP-Tutorial >Zusammenfassung der allgemeinen Verwendung von PHP-Zeitfunktionen
1. So stellen Sie die Zeitzone ein:
Nach PHP5 müssen Sie die Zeitzone selbst festlegen, indem Sie entweder die Einstellungen von php.ini ändern oder es im Code.
Zeitzone in PHP.INI festlegen
date.timezone = PRC
Zeitzone im Code festlegen
1 date_default_timezone_set( 'Asia/Shanghai');//'Asia/Shanghai' Asia/Shanghai
2 date_default_timezone_set('Asia/Chongqing');//Asia/Chongqing' ist „Asia/Chongqing“
3 date_default_timezone_set('PRC');//wobei PRC „Volksrepublik China“ ist
4 ini_set('date.timezone', 'Etc/GMT-8');
5 ini_set('date.timezone','PRC');
6 ini_set( 'date.timezone','Asia/Shanghai');
7 ini_set('date.timezone','Asia/Chongqing');
Prüfdatum: Überprüfen Sie die Richtigkeit des Datums.
bool checkdate (int $month
, int $day
, int $year
)
Monatswert liegt zwischen 1 und 12, Day
Wert liegt innerhalb des angegebenen month
Innerhalb Der Bereich der Tage, der einbezogen werden sollte, berücksichtigt Schaltjahre; der Wert des Jahres liegt zwischen 1 und 32767.
Datum: Formatieren Sie die Uhrzeit des Servers.
string date ( string $format [, int $timestamp ] ): Gibt einen String zurück, der durch eine Ganzzahl timestamp
gemäß dem angegebenen Formatstring generiert wird. Wenn kein Zeitstempel angegeben wird, wird die lokale aktuelle Zeit verwendet. Mit anderen Worten: timestamp
ist optional und der Standardwert ist time().
date("Y-m-d H:i:s", strtotime("-1 days")) //昨天此刻的时间,明天则是 "1 days",前天则是"-2 days";
date("Y-m-d H:i:s", strtotime("0 days")) //今天此刻的时间,等价于date("Y-m-d H:i:s")
U wird durch die Anzahl der Sekunden seit einem Startzeitpunkt (z. B. 1. Januar 1970) ersetzt
Y wird durch die 4-stellige Jahreszahl ersetzt
y wird durch die zweistellige Jahreszahl ersetzt
F wird durch den vollständigen englischen Namen des Monats ersetzt
m wird durch den Monat ersetzt Zahl.
z wird durch die Anzahl der Tage seit dem 1. Januar des aktuellen Jahres ersetzt.
d wird durch die Anzahl der Tage ersetzt Woche.
D wird durch die englische Abkürzung für den Wochentag ersetzt.
w wird durch den Wochentag (Zahlen) ersetzt.
H wird durch Stunden ersetzt (24-Stunden-Format).
h wird durch Stunden ersetzt (12-Stunden-Format).
i wird durch Minuten ersetzt.
s wird durch Sekunden ersetzt.
A wird durch „AM“ oder „PM“ ersetzt.
a wird durch „am“ oder „pm“ ersetzt.
S wird durch ein Ordnungssuffix ersetzt, wie zum Beispiel: „st“, „nd“, „rd“, „th“.
Zeit : Holen Sie sich den UNIX-Zeitstempel der aktuellen Zeit.
int time (void) Gibt die Anzahl der Sekunden seit der Unix-Epoche (1. Januar 1970, 00:00:00 GMT) bis zur aktuellen Zeit zurück.
mktime: UNIX-Zeitstempel abrufen.$nextWeek = time() + (7 * 24 * 60 * 60); // 7 days; 24 hours; 60 mins; 60secs echo 'Now: '. date('Y-m-d H:i:s') ."\n"; echo 'Next Week: '. date('Y-m-d H:i:s', $nextWeek) ."\n"; // or using strtotime(): echo 'Next Week: '. date('Y-m-d H:i:s', strtotime('+1 week')) ."\n"; echo 'Previous Week: '. date('Y-m-d H:i:s', strtotime('-1 week')) ."\n";//或者用strtotime('-7 day')
int mktime ([ int
= date("H") [, int = date("i") [, int $hour
= date("s") [, int $minute
= date("n") [, int $second
= date("j") [, int $month
= date("Y") [, int $day
= -1 ]]]]] ]] ) gibt einen Unix-Zeitstempel basierend auf den angegebenen Argumenten zurück. Ein Zeitstempel ist eine lange Ganzzahl, die die Anzahl der Sekunden seit der Unix-Epoche (1. Januar 1970, 00:00:00 GMT) bis zu einem bestimmten Zeitpunkt enthält. Wenn der Parameter unzulässig ist, gibt diese Funktion $year
$is_dst
zurück (vor PHP 5.1 gab sie FALSE
-1 zurück).
$lastday = mktime(0, 0, 0, 3, 0, 2000);//括号里的参数分别表示 时分秒月天年 echo strftime("Last day in Feb 2000 is: %d", $lastday)."<br>"; $lastday = mktime(0, 0, 0, 4, -31, 2000); echo strftime("Last day in Feb 2000 is: %d", $lastday);
Last day in Feb 2000 is: 29 Last day in Feb 2000 is: 29
getdate: Uhrzeit- und Datumsinformationen abrufen.
array getdate ([ int
= time() ] )$timestamp
$today = getdate();
var_dump($today);
Mikrozeit: Ermitteln Sie den Wert einer Millionstelsekunde des UNIX-Zeitstempels der aktuellen Zeit.
array (size=11) 'seconds' => int 27 'minutes' => int 44 'hours' => int 8 'mday' => int 4 'wday' => int 3 'mon' => int 11 'year' => int 2015 'yday' => int 307 'weekday' => string 'Wednesday' (length=9) 'month' => string 'November' (length=8) 0 => int 1446597867
mixed microtime ([ bool
] ) Wenn der Parameter $get_as_float angegeben ist und sein Wert TRUE entspricht, gibt diese Funktion eine Gleitkommazahl zurück.$get_as_float
function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } $time_start = microtime_float(); // Sleep for a while usleep(10000000);//usleep — 以指定的微秒数延迟执行,10000000是10秒,sleep是延迟多少秒 $time_end = microtime_float(); $time = $time_end - $time_start; echo "Did nothing in $time seconds\n";//Did nothing in 9.9999949932098 secondsgettimeofday
: Aktuelle Uhrzeit abrufen. http://php.net/manual/zh/function.gettimeofday.phpgmdate: Ermitteln Sie den Zeitunterschied zwischen der aktuellen Zeit und GMT.
easter_dateeaster_days: Berechnen Sie die Anzahl der Tage zwischen Ostern und dem 21. März. gmmktime: Ruft die Greenwich Mean Time des UNIX-Zeitstempels ab.
3. Ergänzung:$_SERVER['REQUEST_TIME'] 是 PHP 内置的当前页面开始运行时的时间戳,在当前页面运行结束时将 time() - $_SERVER['REQUEST_TIME'] 得到的就是当前页面运行的时间(秒): 一天86400秒 一周 86400*7=604800秒 set_time_limit用法:set_time_limit(秒数);规定从该句运行时起程序必须在指定秒数内运行结束, 超时则程序出错退出. 一个问题举例 为何得到: 1970 1 我希望得到: 1999 8 如何解决? -------------------------------------------------------------------------------- 输出 常用时间函数封装: /** $t = $value["years"] . "年" . $value["days"] . "天" . " " . $value["hours"] . "小时" . $value["minutes"] . "分" . $value["seconds"] . "秒"; return $t; } else { } /** *当前日期是本月的第几周 * @param int $date Y-m-d格式的时间,下同 * @return int * / function weekOfMonth($date) { $firstOfMonth = strtotime(date("Y-m-01", strtotime ($date))); return intval(date("W", $date)) - intval(date("W", $firstOfMonth)) + 1; } //获取指定日期所在月的第一天和最后一天 function getdays($date ) { /** * 获得指定日期的前/后$step(正负表示指定日期所在月的前后的第几个月份)个月的第一天和最后一天日期 * @param $date } $date = date('Ymd', strtotime($date)); $lastday = date('Ymd', strtotime("$date Sunday"));//周日 $firstday = date('Ymd', strtotime("$lastday -6 days"));//周一 $firstday = date('Ymd', strtotime(date('Y-m-01', strtotime($date))));//指定日期所在月的第一天 $lastday = date("Ymd", strtotime("$firstday +1 month -1 day"));//指定日期所在月的最后一天 $dayCount = $lastday - $firstday + 1; //间隔天数$nowdate="1999-08-05" ;
$aa=getdate($nowdate);
$year=$aa['year'];
$month=$aa['mon'];
echo $year."</br>";
echo $month;
--------------------------------------------------------------------------------$nowdate="1999-08-05" ;
$aa=strtotime($nowdate);
$year=date("Y",$aa);
$month=date("n",$aa);
echo $year."</br>";
echo $month;
$endtime="2004-09-09 18:10:00";
$d1=substr($endtime,17,2); //秒
$d2=substr($endtime,14,2); //分
$d3=substr($endtime,11,2); // 时
$d4=substr($endtime,8,2); //日
$d5=substr($endtime,5,2); //月
$d6=substr($endtime,0,4); //年
echo $d1.'-'.$d2.'-'.$d3.'-'.$d5.'-'.$d4.'-'.$d6."<br>";
echo date("Y-m-d H:i:s")."<br>";
$now_T=mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));
echo "此时的time".$now_T."<br>";
$now_S=mktime("$d3","$d2","$d1","$d5","$d4","$d6");
echo "2004-09-09 18:10:00时的time".$now_S."<br>";
$end_TS=($now_T-$now_S)/60; //计算 剩余分钟
echo "相差".$end_TS."分";
00-10-18-09-09-2004
2015-11-04 09:02:08
此时的time1446598928
2004-09-09 18:10:00时的time1094724600
相差5864572.1333333分
* 将秒数转换为时间(年、天、小时、分、秒)
* @param int $time 秒数比如86400
* @return bool|string
*/
public static function Sec2Time($time)
{
if (is_numeric($time)) {
$value = array(
"years" => 0, "days" => 0, "hours" => 0,
"minutes" => 0, "seconds" => 0,
);
if ($time >= 31556926) {
$value["years"] = floor($time / 31556926);
$time = ($time % 31556926);
}
if ($time >= 86400) {
$value["days"] = floor($time / 86400);
$time = ($time % 86400);
}
if ($time >= 3600) {
$value["hours"] = floor($time / 3600);
$time = ($time % 3600);
}
if ($time >= 60) {
$value["minutes"] = floor($time / 60);
$time = ($time % 60);
}
$value["seconds"] = floor($time);
return (bool)FALSE;
}
function GetTheMonth($date)
{
$firstday = date("Y-m-01", strtotime($date));
$lastday = date("Y-m-d", strtotime("$firstday +1 month -1 day"));
return array($firstday, $lastday);
}
//PHP获得指定日期所在星期的第一天和最后一天
$lastday = date('Y-m-d', strtotime("$day Sunday"));
$firstday = date('Y-m-d', strtotime("$lastday -6 days"));
return array($firstday, $lastday);
}
* @param $step
* @return string
*/
function AssignTabMonth($date, $step)
{
$date = date("Y-m-d", strtotime($step . " months", strtotime($date)));//得到处理后的日期(得到前后月份的日期)
$firstday = date("Y-m-01", strtotime($date));
$lastday = date("Y-m-d", strtotime("$firstday +1 month -1 day"));
return array($firstday, $lastday);mysql日期时间函数 http://www.jb51.net/article/23966.htm
Das obige ist der detaillierte Inhalt vonZusammenfassung der allgemeinen Verwendung von PHP-Zeitfunktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!