strtotime отслеживает только за 1 неделю - PullRequest
1 голос
/ 21 октября 2010

Используя следующую инструкцию if, я пытаюсь проверить, является ли день недели пятницей

if(($uur < 12) && ($min < 30) && ($datum == date('Y-m-d', strtotime('Friday'))))
{  
  $proceed = FALSE;  
  $errorWoensdagVrijdag = "<div id='row_form_dropdown'>Error Message</div>";  
}

Даты вставляются с использованием формы. Все проверяется очень хорошо, когда я пытаюсь выбрать дату и время в пятницу 22-го до 12:30, я получу сообщение об ошибке. Но если я проверю это в пятницу, 27-го, оно пройдет без каких-либо осложнений.

Я немного растерялся, потому что мне кажется, что это должно работать. Я видел некоторые замечания относительно версии PHP, я использую версию PHP 5.2.9.

Любой, кто хотел бы предложить свою помощь, более чем приветствуется.

Ответы [ 2 ]

2 голосов
/ 21 октября 2010

Это потому, что strtotime('Friday') означает «Пятница на этой неделе».

Вы должны использовать:

if(date('N', $timestamp) == 5)
{
    // Friday!
}
else
{
    // Not Friday :-(
}

Я полагаю, в вашем случае дата, введенная пользователем, равна $datum.Ваше заявление if станет:

if(($uur < 12) && ($min < 30) && (date('N', strtotime($datum)) == 5))
{
    $proceed = FALSE;
    // Etc..
}

Для получения дополнительной информации об использовании date('N', $timestamp) см .: http://php.net/manual/en/function.date.php

1 голос
/ 21 октября 2010

НОВАЯ ИДЕЯ

$timestamp=mktime(0, 0, 0, 10, 21, 2010);
$today = getdate($timestamp);
echo $today["weekday"];

СТАРАЯ ИДЕЯ Другой способ сделать это:

  <?php
     $h = mktime(0, 0, 0, 10, 31, 2008);
     $d = date("F dS, Y", $h) ;
     $w= date("l", $h) ;
//     Echo "$d is on a $w";

if($w=="Friday"){
echo "Yes";
}
     ?>

Вся статья: http://php.about.com/od/finishedphp1/qt/dayoftheweek.htm

Где 10,31,2008 - ваша дата.

...