2016-01-19 150 views
1

嘗試獲取PHP中給定日期的星期數。出於某種原因,我嘗試的各種事情似乎都是休息一週。在下面的鏈接獲取星期數從一個星期的日期開始

尋找我們應該第3周 http://www.epochconverter.com/date-and-time/weeknumbers-by-year.php

然而,當我我得到2周

echo "Weeknummer: " . date("W", strtotime("2016-01-17")); 

我也試過這個代碼得到相同的結果做到以下幾點,第2周

$date = new DateTime("2016-01-17"); 
$week = $date->format("W"); 
echo "Weeknummer: $week"; 

任何想法爲什麼它似乎落後了一個星期,我該如何解決這個問題?

感謝

+0

人,你提供的鏈接http://www.epochconverter.com/date-and-time/weeknumbers-by-year。 PHP和有日期「2016-01-17」,這是第2周。所以 - 一切正常,對吧?如果您嘗試使用「2016-01-18」 - 這將是第3周。 –

+0

從週一到週日開始的一週將我拋下,謝謝。 –

回答

1

您發送顯示,2016年1月17日該鏈接的最後一天在第2周。看截圖。在PHP中周的星期一開始(你可以閱讀更多in the docs

enter image description here

+0

星期一和星期天開始的那一週把我拋下了......我現在覺得很愚蠢。 –

0

這是因爲在mktime(),它是這樣的:

mktime(hour, minute, second, month, day, year); 

所以用下面的代碼嘗試希望這是你想要

<?php 
$ddate = "2016-01-17"; 
$duedt = explode("-", $ddate); 
$date = mktime(0, 0, 0, $duedt[1], $duedt[2], $duedt[0]); 
$week = (int)date('W', $date); 
echo "Weeknummer: " . $week; 
?> 

什麼,你也可以試試github.com/briannesbitt/Carbon最大限度地提高您在日期操作中的技能。對於碳你可以做到這一點:

Carbon::createFromFormat('Y-m-d H', '2012-10-18')->format('W'); 
2

我們,但今天是第19(至少在我的時區...)。

你已硬編碼在17在你的腳本,當你可以在你所提到的網站上看到,這是一週2

相關問題