2017-04-21 10 views
1

Imは特定の月から数えてくるPHPコードを書こうとしています。私にとっては9月と2月。例えば、01.09.2017の望ましい結果は、Semester-1、Week-1です。 04.09.2017の場合は、第1週、第2週となります。私は同様のトピックhere hereを見つけました。しかし、彼らの出力結果は配列です、私はここでもarreysで作業する必要がありますか?私はほとんどPHP言語でexpierenceがゼロであることを言及したいと思います。特定の月から数えて数え始めます

<?php 
$day = date("D"); 
$month = date("M"); 
if($month == 'Apr'||'Feb'||'Mar'||'May') { 
print "Semester-2,"; 
} 
else print ""; 
if($month == 'Sep'||'Oct'||'Nov'||'Dec') { 
print "Semester-1,"; 
} 
else print ""; 
if($month == 'Jan') { 
print "Exams"; 
} 
if($month == 'Jun') { 
print "Exams,"; 
} 
if($month == 'Jun') { 
print "Exams,"; 
} 
if($month == 'Jul'||'Aug') { 
print "Summer Break,"; 
} 
+0

'$ month == 'Sep' || 'Oct''は思った通りに動作しません。$ month ==' Sep '|| ($ month、array( "Apr"、 "Feb"、 "Mar"、 "May"))$ month == 'Oct''など、 – Qirel

答えて

1

あなたはこのような何か行うことができます:

これは私がこれまでに出ているものです@Qirelのコメントの後

$month = date('n'); // Month number 1-12 

if ($month >= 9 && $month <=12) { 
    $period = 'Semester-1'; 
    $startWeek = date('W', strtotime(date('Y') . '-09-01')); 
} elseif ($month >= 2 && $month <=5) { 
    $period = 'Semester-2'; 
    $startWeek = date('W', strtotime(date('Y') . '-02-01')); 
} elseif ($month == 1) { 
    $period = 'Exams'; 
    $startWeek = date('W', strtotime(date('Y') . '-01-01')); 
} elseif ($month == 6) { 
    $period = 'Exams'; 
    $startWeek = date('W', strtotime(date('Y') . '-06-01')); 
} elseif ($month == 7 || $month == 8) { 
    $period = 'Summer break'; 
    $startWeek = date('W', strtotime(date('Y') . '-07-01')); 
} 

$currentWeek = date('W') - $startWeek + 1; 

echo $period . ' ' . 'Week-' . $currentWeek; 
0

を、私はこれを願って、このような何かを考えました助け:

<?php 

error_reporting(E_ALL); ini_set('display_errors', 1); 

$month = date("M"); /* current month */ 

if (in_array($month, array("Sep", "Oct", "Nov", "Dec"))) { $myperiod = "Semester #1"; } 

if (in_array($month, array("Feb", "Mar", "Apr", "May"))) { $myperiod = "Semester #2"; } 

if($month == 'Jan') { $myperiod = "Mid-Exams #1"; } 

if($month == 'Jun') { $myperiod = "Final-Exams #2"; } 

if(($month == 'Jul') || ($month == 'Aug')) { $myperiod = "Summer break"; } 

$today = date("Y-m-d"); /* or use your date from user data */ 
$date = new DateTime($today); 
$week = $date->format("W"); /* use of PHP function 'date' to get week # */ 

$currentweek = "$week"; 

echo "[ Week # $week ]"; 

echo"You currently are in : $myperiod - $currentweek"; 

?> 
0

これはあなたが必要なものを与える必要があります。

$semesters = array(
    'Sep' => 'Semester-1', 
    'Oct' => 'Semester-1', 
    'Nov' => 'Semester-1', 
    'Dec' => 'Semester-1', 
    'Jan' => 'Exams', 
    'Feb' => 'Semester-2', 
    'Mar' => 'Semester-2', 
    'Apr' => 'Semester-2', 
    'May' => 'Semester-2', 
    'Jun' => 'Exams', 
    'Jul' => 'Summer Break', 
    'Aug' => 'Summer Break', 
); 

switch ($semesters[date('M')]) { 
    case 'Semester-1': 
     $sep1st = strtotime('2017-09-01'); 
     $week1 = date('W', $sep1st); 

     $currentWeek = date('W'); 

     echo 'Semester-1, Week-', $currentWeek - $week1 + 1; // +1 because the count starts at 1. 

     break; 

    case 'Semester-2': 
     $feb1st = strtotime('2018-02-01'); 
     $week1 = date('W', $feb1st); 

     $currentWeek = date('W'); 

     echo 'Semester-2, Week-', $currentWeek - $week1 + 1; // +1 because the count starts at 1. 

     break; 

    default: 
     echo $semesters[date('M')]; 

     break; 
} 

これは、より小さくより意味のある部分にリファクタリングできることに注意してください。

関連する問題