PHP 獲取本週 本月 本季度時間用法

<?php

//得到本週時間開始、結束時間(星期一 至 星期天)

//本週開始(星期一)
$week_start = mktime(0,  0,  0,  date("m"), date("d") - date("w") + 1, date("Y"));
//本週開始(星期天)
$week_end   = mktime(23, 59, 59, date("m"), date("d") - date("w") + 7, date("Y"));

//輸出 timestamp = 0000-00-00 00:00:00
echo '本週開始:' . $week_start . ' = ' . date('Y-m-d H:i:s', $week_start) . '<br />';
echo '本週結束:' . $week_end   . ' = ' . date('Y-m-d H:i:s', $week_end)   . '<br /><br />';

echo '本日&nbsp;&nbsp;:'	. date("Y-m-d", strtotime("now")) 			 . "<br />";
echo '本週一:' 				. date("Y-m-d", strtotime("-1 week Monday")) . "<br />";
echo '本週二:' 				. date("Y-m-d", strtotime("-1 week Sunday")) . "<br />";
echo '下週一:'				. date("Y-m-d", strtotime("+0 week Monday")) . "<br />";
echo '同上&nbsp;&nbsp;:'	. date("Y-m-d", strtotime("next Monday"))    . "<br />";
echo '下週二:'				. date("Y-m-d", strtotime("+0 week Sunday")) . "<br />";
echo '同上&nbsp;&nbsp;:'	. date("Y-m-d", strtotime("next Sunday"))    . "<br />";


//date('n') 第幾個月
//date("w") 本週周幾(週日爲0)
//date("t") 本月天數

echo '<br>本日:';
echo date("Y-m-d H:i:s", mktime(0, 0, 0, date("m"), date("d"), date("Y"))), "\n";

//date("w") + 1 - 7 上週週一: 開始是週一,因此+1;上一週,因此-7; 或是倒過來理解
//date("w") + 7 - 7 上週週日: 結束是週日,因此+7;上一週,因此-7; 或是倒過來理解
echo '<br>上週:';
echo date("Y-m-d H:i:s", mktime(0,  0,  0,  date("m"), 		date("d") - date("w") + 1 - 7, 	date("Y"))), "\n-\n";
echo date("Y-m-d H:i:s", mktime(23, 59, 59, date("m"), 		date("d") - date("w") + 7 - 7, 	date("Y"))), "\n";

//date("w") + 1 - 7 本週週一: 開始是週一,因此+1;
//date("w") + 7 - 7 本週週日: 結束是週日,因此+7;
echo '<br>本週:';
echo date("Y-m-d H:i:s", mktime(0,  0,  0,  date("m"), 		date("d") - date("w") + 1,     	date("Y"))), "\n-\n";
echo date("Y-m-d H:i:s", mktime(23, 59, 59, date("m"), 		date("d") - date("w") + 7,     	date("Y"))), "\n";

echo '<br>上月:';
echo date("Y-m-d H:i:s", mktime(0,  0,  0,  date("m") - 1,	1, 								date("Y"))), "\n-\n";
echo date("Y-m-d H:i:s", mktime(23, 59, 59, date("m"),     	0, 								date("Y"))), "\n";
echo '<br>本月:';
echo date("Y-m-d H:i:s", mktime(0,  0,  0,  date("m"),     	1, 								date("Y"))), "\n-\n";
echo date("Y-m-d H:i:s", mktime(23, 59, 59, date("m"),      date("t"),						date("Y"))), "\n";

//本季度未最後一月天數
$getMonthDays = date("t", mktime(0, 0, 0, date('n') + (date('n') - 1) % 3, 1, date("Y")));
echo '<br>本季:';
echo date('Y-m-d H:i:s', mktime(0,  0,  0,  date('n') - (date('n') - 1) % 3, 1,             date('Y'))), "\n-\n";
echo date('Y-m-d H:i:s', mktime(23, 59, 59, date('n') + (date('n') - 1) % 3, $getMonthDays, date('Y'))), "\n";

?>
相關文章
相關標籤/搜索