0

当用户从“servicerequired”下拉菜单中选择“A”值时,我使用下面的代码发送 Web 邮件和 SMS 通知。它工作得很好,但我想把时间安排从每天晚上 8 点到早上 5 点的“禁用”更改为:

周一至周五晚上 8 点至凌晨 5 点以及早上 7 点至下午 4 点之间“禁用”
周日和周六晚上 8 点至凌晨 5 点之间“禁用”

这是我当前的代码,它阻止每天从晚上 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 回答