0

ユーザーが「servicerequired」ドロップダウン メニューから「A」値を選択したときに、Web メールと SMS 通知を送信するために以下のコードを使用しています。まったく問題なく動作しますが、タイム スケジュールを「無効」から毎日午後 8 時から午前 5 時までに変更します。

月~金午後 8 時~午前 5 時と午前 7 時~午後 4時は「無効」
日曜と土曜日の午後 8 時~午前 5 時は「無効」

これは、Web SMS が毎日午後 8 時から午前 5 時まで送信されないようにする現在のコードです。

if ($_POST['submit']) {
           $sms="";
           $subject="";
           $from = "";
           $service = $_REQUEST['servicerequired'] ;
           $headers = "";
           $message="message";
if($_POST['servicerequired']=='A' && (date("G")>5 && date("G")<20)  ){ 
           @mail($sms, $subject, $message, $headers);
}

HTML マークアップ:

<form action="" method="post">
<select name="servicerequired">
    <option value="A">A</option>
    <option value="B">B</option>
</select>
<input value="submit" name="submit" />
</form>

これは、数日間私の頭を悩ませています。私はいくつかの調査を行い、この解決策を思いつきましたが、それがベストプラクティスなのか、それとも機能するのかはわかりません.

私の解決策:

if($_POST['servicerequired']=='A')
{
    if(date("W")=0 || date("W")=6) && (date("G")>5 && date("G")<20)
    {
        @mail($sms, $subject, $message, $header); 
    }
    else if
    {
        (date("W")>0 && date("W")<6) && (date("G")>5 && date("G")<20)
    }
    else
    {
        @mail($sms, $subject, $message, $header);
    }
}

この投稿を改善できると思われる場合は、コメントを追加することを検討してください:)

4

1 に答える 1

1

更新* * ****

試す :

if($_POST['servicerequired']=='A')
{
switch (date("N"))
{
 case 6:  //Saturday
 if(date("G")>5 && date("G")<20)
 {
    @mail($sms, $subject, $message, $header); 
 }
 break;
 case 7:  //Sunday
 if(date("G")>5 && date("G")<20) 
 {
    @mail($sms, $subject, $message, $header); 
 }
 break;
 case 1:  //Monday
 if(date("G")>5 && date("G")<20 && date("G")>16 && date("G")<7)
 {
    @mail($sms, $subject, $message, $header); 
 }
 break;
 case 2:  //Tuesday
 if(date("G")>5 && date("G")<20 && date("G")>16 && date("G")<7)
 {
    @mail($sms, $subject, $message, $header); 
 }
 break;
 case 3:  //Wednesday 
 if(date("G")>5 && date("G")<20 && date("G")>16 && date("G")<7)
 {
    @mail($sms, $subject, $message, $header); 
 }
 break;
 case 4:  //Thursday
 if(date("G")>5 && date("G")<20 && date("G")>16 && date("G")<7)
 {
    @mail($sms, $subject, $message, $header); 
 }
 break;
 case 5:  //Friday
 if(date("G")>5 && date("G")<20 && date("G")>16 && date("G")<7)
 {
    @mail($sms, $subject, $message, $header); 
 }
}
}
于 2013-07-12T07:46:07.383 に答える