nth-of-type
работает в соответствии с индексом того же типа элемента, но nth-child
работает только в соответствии с индексом независимо от того, какой тип элементов сиблингов.
Например
<div class="one">...</div>
<div class="two">...</div>
<div class="three">...</div>
<div class="four">...</div>
<div class="five">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
<div class="rest">...</div>
Предположим, что в выше html мы хотим скрыть все элементы, имеющие класс отдыха.
В этом случае nth-child
и nth-of-type
будут работать точно так же, как и все элементы одного типа, <div>
, поэтому css должен быть
.rest:nth-child(6), .rest:nth-child(7), .rest:nth-child(8), .rest:nth-child(9), .rest:nth-child(10){
display:none;
}
OR
.rest:nth-of-type(6), .rest:nth-of-type(7), .rest:nth-of-type(8), .rest:nth-of-type(9), .rest:nth-of-type(10){
display:none;
}
Теперь вам должно быть интересно узнать, в чем разница между nth-child
и nth-of-type
, так что это разница
Предположим, что html is
<div class="one">...</div>
<div class="two">...</div>
<div class="three">...</div>
<div class="four">...</div>
<div class="five">...</div>
<p class="rest">...</p>
<p class="rest">...</p>
<p class="rest">...</p>
<p class="rest">...</p>
<p class="rest">...</p>
В приведенном выше html тип элемента .rest
отличается от других .rest
- это абзацы, а другие - div, поэтому в этом случае if вы используете nth-child
, вы должны писать так
.rest:nth-child(6), .rest:nth-child(7), .rest:nth-child(8), .rest:nth-child(9), .rest:nth-child(10){
display:none;
}
, но если вы используете nss-тип css, это может быть
.rest:nth-of-type(1), .rest:nth-of-type(2), .rest:nth-of-type(3), .rest:nth-of-type(4), .rest:nth-of-type(5){
display:none;
}
Как тип Элементом
blockquote >.rest
является<p>
, поэтому здесьnth-of-type
обнаруживает тип.rest
, а затем он накладывает css на 1-й, 2-й, 3-й, 4-й, 5-й элементы<p>
.
if (date('H') < 14) {
$pre2pm = true;
}
Для получения дополнительной информации о функции даты, пожалуйста, см. Руководство по PHP . Я использовал следующий форматер времени:
H = 24-часовой формат часа (от 00 до 23)
Попробуйте:
if(date("Hi") < "1400") {
}
См .: http://php.net/manual/en/function.date.php
H 24-hour format of an hour with leading zeros 00 through 23
i Minutes with leading zeros 00 to 59
Вы можете просто передать время
if (time() < strtotime('2 pm')) {
//not yet 2 pm
}
Или передать дату в явном виде
if (time() < strtotime('2 pm ' . date('d-m-Y'))) {
//not yet 2 pm
}
Вы не сказали нам, какую версию PHP вы используете, хотя, предполагая, что это PHP 5.2.2+, вы можете сделать это следующим образом:
$now = new DateTime();
$twoPm = new DateTime();
$twoPm->setTime(14,0); // 2:00 PM
, а затем просто спросите:
if ( $now < $twoPm ){ // such comparison exists in PHP >= 5.2.2
// do this
}
в противном случае , если вы используете одну из более старых версий (скажем, 5.0), это должно помочь (и намного проще):
$now = time();
$twoPm = mktime(14); // first argument is HOUR
if ( $now < $twoPm ){
// do this
}
Используйте 24-часовое время, чтобы обойти проблему следующим образом:
$time = 1400;
$current_time = (int) date('Hi');
if($current_time < $time) {
// do stuff
}
Таким образом, 2 часа дня равно 14:00 в 24-часовое время. Если мы удалим двоеточие из времени, то мы можем оценить его как целое число в нашем сравнении.
Для получения дополнительной информации о функции даты, пожалуйста, см. Руководство по PHP . Я использовал следующие форматеры времени:
H = 24-часовой формат часа (от 00 до 23)
i = минуты с ведущими нулями (от 00 до 59)
Если вы хотите проверить, является ли время до 14:30, вы можете попробовать следующий сегмент кода.
if (date('H') < 14.30) {
$pre2pm = true;
}else{
$pre2pm = false;
}
Попробуйте с
if( time() < mktime(14, 0, 0, date("n"), date("j"), date("Y")) ) {
// do this
}
Эта функция проверит, находится ли время между часами в EST, приняв 2 параметра, массивы с часами и am / pm ...
/**
* Check if between hours array(12,'pm'), array(2,'pm')
*/
function is_between_hours($h1 = array(), $h2 = array())
{
date_default_timezone_set('US/Eastern');
$est_hour = date('H');
$h1 = ($h1[1] == 'am') ? $h1[0] : $h1[0]+12;
$h1 = ($h1 === 24) ? 12 : $h1;
$h2 = ($h2[1] == 'am') ? $h2[0] : $h2[0]+12;
$h2 = ($h2 === 24) ? 12 : $h2;
if ( $est_hour >= $h1 && $est_hour <= ($h2-1) )
return true;
return false;
}
Используйте функции time()
, date()
и strtotime()
:
if(time() > strtotime(date('Y-m-d').' 14:00') {
//...
}