簡體   English   中英

php中一個月最后一天的mktime函數

[英]mktime function in case of Last day of a month in php

PHP函數mktime一個月最后一天的理解

echo date("Y-m-d H:i:s", mktime(0, 0, 0, 2, 0, 2014));

輸出是

2014-01-31 00:00:00

它應該是

2014-02-28 00:00:00

我在這里做的錯在哪里?

我看不出問題。 在我看來是正確的。

您已要求 2 月 0 日,即 2 月 1 日(又稱 1 月 31 日)的前一天。

如果您將 day 設置為0 ,它將返回一個月的最后一天 - 1

<?php
     $lastday = mktime(0, 0, 0, 3, 0, 2000);
     echo strftime("Last day in Feb 2000 is: %d", $lastday);
     $lastday = mktime(0, 0, 0, 4, -31, 2000);
     echo strftime("Last day in Feb 2000 is: %d", $lastday);
 ?>
echo date("Y-m-d H:i:s", mktime(0, 0, 0, 2, 28, 2014)); //You can't show 29 in feb 2014

輸出:2014-02-28 00:00:00

當您通過專業的混亂month第四個參數和第五參數為day = 0在PHP函數mktime方法。

來自 PHP 官方文檔:

Example #3 一個月的最后一天**

任何給定月份的最后一天都可以表示為下個月的“0”天,而不是 -1 天。 以下兩個示例都將產生字符串“The last day in Feb 2000 is: 29”。

$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("\nLast day in Feb 2000 is: %d", $lastday);
// For Feb 2014
$lastday = mktime(0, 0, 0, 3, 0, 2014);
echo strftime("\nLast day in Feb 2014 is: %d", $lastday);

$lastday = mktime(0, 0, 0, 4, -31, 2014);
echo strftime("\nLast day in Feb 2014 is: %d", $lastday);
?>

輸出如下:

Last day in Feb 2000 is: 29
Last day in Feb 2000 is: 29
Last day in Feb 2014 is: 28
Last day in Feb 2014 is: 28

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM