2017-03-27 8 views
1

Ich möchte ein Array mit Wochen des aktuellen Monats, Wie kann ich das bekommen? Ich habe verschiedene Methoden ausprobiert, aber keiner von ihnen arbeitet für mich ..Wie bekomme ich die Woche des Monats?

$month = date('m'); // it should be CURRENT MONTH Of Current Year 
$year = date('y'); // Current year 

$beg = (int) date('W', strtotime("$year-$month")); 
$end = (int) date('W', strtotime("$year-$month")); 

ich den obigen Code verwendet haben, aber nicht funktioniert ..

Ich möchte in ein Array diese Woche Zahlen des aktuellen Monats setzen wie

array ('1' => 'first week of march', '2' => '2nd week of march', '3' => '3rd week of march', '4' => '4th week of march', '5' => '5th week of march') etc 

1,2,3,4,5 in Array kann Wochennummer

+0

Sie wollen die Nummer ISO-Woche? –

+0

Ja eine Standardwoche Nummer –

+0

werfen Sie einen Blick auf http://StackOverflow.com/Questions/5853380/PHP-Get-Number-of-week-for-Month –

Antwort

0

Nach einiger harte Zeit für sie suchen, hier ist die Antwort, Es tut uns ein bisschen spät hier veröffentlichen. Ich hoffe, es wird euch helfen.

public static function getWeeksOfMonth() 
{ 
    $currentYear = date('Y'); 
    $currentMonth = date('m'); 

    //Substitue year and month 
    $time = strtotime("$currentYear-$currentMonth-01"); 
    //Got the first week number 
    $firstWeek = date("W", $time); 

    if ($currentMonth == 12) 
     $currentYear++; 
    else 
     $currentMonth++; 

    $time = strtotime("$currentYear-$currentMonth-01") - 86400; 
    $lastWeek = date("W", $time); 

    $weekArr = array(); 

    $j = 1; 
    for ($i = $firstWeek; $i <= $lastWeek; $i++) { 
     $weekArr[$i] = 'week ' . $j; 
     $j++; 
    } 
    return $weekArr; 
} 

Das Ergebnis wird die Woche des aktuellen Monats sein ..

Array ( 
    [26] => week 1 
    [27] => week 2 
    [28] => week 3 
    [29] => week 4 
    [30] => week 5 
    [31] => week 6 
) 

enter image description here

0
function weeksOfMonth($month, $year){ 
    $num_of_days = date("t", mktime(0,0,0,$month,1,$year)); 
    $lastday = date("t", mktime(0, 0, 0, $month, 1, $year)); 
    $no_of_weeks = 0; 
    $count_weeks = 0; 
    while($no_of_weeks < $lastday){ 
     $no_of_weeks += 7; 
     $count_weeks++; 
    } 
    return $count_weeks; 
} 
echo weeksOfMonth(3, 2017); 
+0

Wie werde ich das Datum in welchem ​​Format übergeben? '$ date' wenn ich das Datum in diesem Format' 2017-03-20' sende gibt es einen Fehler 'Ein nicht wohlgeformter numerischer Wert angetroffen' und wenn Format wie dieses 'date_create (2017-03-20)' gibt es einen Fehler 'date() erwartet, dass Parameter 2 lang ist, objekt gegeben ' und wenn –

+0

siehe aktualisierte Antwort –

1

seinen Anfang Für immer und endend ISO Wochennummer bei Temperaturen unter Code:

$beg = (int) date('W', strtotime(date("Y-m-01"))); 
$end = (int) date('W', strtotime(date("Y-m-t"))); 
Verwandte Themen