А у вас включено отображение ошибок?
$servers[ $i ][ open_date ] > $date
open_date - это строка или константа?
Строки пишутся в одинарных или двойных кавычках.
Константы - капсом.
$servers[ $i ][ 'open_date' ] > $date
UPD
А вообще, прочитайте комментарии к коду. Он не будет работать как вы задумали.
<?php
for($i = 0; $i < $count; $i++){
$servers[ $i ];//Что это?
if( ( $servers[ $i ][ 'open_date' ] > $date ) && ( $servers[ $i ][ 'allow' ] == 1 ) ){
$servers_notopened[] = $servers[ $i ];
}elseif( isset( $_POST['chronicles'] ) && isset( $_POST['raites'] ) ){
for($i = 0; $i < $count; $i++){//У нас for $i, надо использовать $j
$servers[ $i ];
if( ( ( $servers[ $i ][ 'open_date' ] > $date ) && ( $servers[ $i ][ 'allow' ] == 1 ) )//Мы тут \DateTime сравниваем?!
&& ( ( $servers[ $i ][ 'chronicles' ] == $_POST['chronicles'] )
&& ( $servers[ $i ][ 'raite' ] == $_POST['raites'] ) )
){
$servers_notopened[] = $servers[ $i ];
}
}
}
if( ( $servers[ $i ][ 'open_date' ] == $date ) && ( $servers[ $i ][ 'allow' ] == 1 ) ){
$servers_today[] = $servers[ $i ];
}elseif( isset( $_POST['chronicles'] ) && isset( $_POST['raites'] ) ){
for($i = 0; $i < $count; $i++){//Есть for по $i,$j используем $p
$servers[ $i ];
if( ( ( $servers[ $i ][ 'open_date' ] == $date ) && ( $servers[ $i ][ 'allow' ] == 1 ) )
&& ( ( $servers[ $i ][ 'chronicles' ] == $_POST['chronicles'] )
&& ( $servers[ $i ][ 'raite' ] == $_POST['raites'] ) )
){
$servers_today[] = $servers[ $i ];
}
}
}
if( ( $servers[ $i ][ 'open_date' ] < $date ) && ( $servers[ $i ][ 'allow' ] == 1 ) ){
$servers_opened[] = $servers[ $i ];
}elseif( isset( $_POST['chronicles'] ) && isset( $_POST['raites'] ) ){
for($i = 0; $i < $count; $i++){//Есть for по $i,$j,$p используем $q
$servers[ $i ];
if( ( ( $servers[ $i ][ 'open_date' ] < $date ) && ( $servers[ $i ][ 'allow' ] == 1 ) )
&& ( ( $servers[ $i ][ 'chronicles' ] == $_POST['chronicles'] )
&& ( $servers[ $i ][ 'raite' ] == $_POST['raites'] ) )
){
$servers_opened[] = $servers[ $i ];
}
}
}
}