Intereting Posts
В PHP лучший способ обеспечить текущий рабочий каталог такой же, как скрипт, при использовании CLI множественные приложения codeigniter с поддоменами wild card, mod_rewrite переназначение поддоменов в .php Добавление нескольких файлов с PDO Сделайте строчку в нижнем регистре, куда ее поместить Что делает обертывание процедурного блока в фигурных скобках в php? Push-уведомление | обязательна ли websocket? как установить таймаут в методе vueJs Неожиданное поведение при назначении нескольких переменных в блоке if () PHP-CodeIgniter: как получить соответствующие значения строк таблицы html, которые будут удалены с помощью Javascript Правила корзины покупок с пользовательским условием? PHP mySQL, объединяющий более двух таблиц вместе с похожими идентификаторами? Диапазон PHP () от A до ZZ? Авторизовать пользователей на основе ролей в CakePHP 3 использование класса phpmailer PHP XPath. Как вернуть строку с тегами html?

Отображать контент на основе даты с помощью PHP

Я собираю сайт конкурса, построенный на WordPress. Юридически, конкурс должен начаться в полночь. Чтобы не добираться до полуночи, чтобы настроить контент, я хотел бы создать некоторую логику PHP, чтобы показать все после даты начала, а затем отобразить некоторый базовый HTML для всплывающей страницы. Я ВСЕГО программировал newb, но я пытаюсь решить проблему, вот что у меня есть до сих пор:

<?php // The current date $date = date('Y, j, m'); // Static contest start date $contestStart = ('2012, 02, 03'); // If current date is after contest start if ($date > $contestStart) { //contest content? } else { // splash content? } ?> 

Я чувствую, что есть более разумные способы сделать это. Мой сайт довольно большой … обертывание всего в выражении if кажется смешным. Может быть, перенаправление на другую страницу в целом на основе даты?

Любая помощь приветствуется.

Вы захотите изменить тему WordPress, чтобы изменения могли быть общими.

  1. Войдите в свою установку WordPress.
  2. Перейти к Внешний вид > Редактор
  3. В разделе « Шаблоны » перейдите в header.php
  4. В самом начале header.php введите свой код:

 <?php $date = time(); $contestStart = strtotime('2012-02-03 00:00:00'); if ($date < $contestStart) { ?> <html> Insert your whole splash page here. </html> <?php exit; } ?> //The normal template code should be below here. 

Не забудьте нажать кнопку «Обновить файл» в WordPress, когда вы закончите; и, как говорили другие, убедитесь, что ваше определенное время синхронизируется с любым часовым поясом, на котором находится сервер.

Я предполагаю, что технически логика вашего кода будет работать, но да, есть намного лучшие способы сделать это. Однако, для ваших целей мы пойдем просто.

Вы должны сравнивать с меткой времени, а не с строкой. Попробуй это:

 <?php // The current date $date = time(); // Static contest start date $contestStart = strtotime('2012-02-03 00:00:00'); // If current date is after contest start if ($date > $contestStart) { //contest content? } else { // splash content? } ?> 

Вы можете поместить компоненты всплеска и содержимого в отдельные .php-файлы и просто включить (), затем в условные выражения.

 if ($date > $contestStart) { include("SECRETDIR/contest.php"); } else { include("SECRETDIR/splash.php"); } в if ($date > $contestStart) { include("SECRETDIR/contest.php"); } else { include("SECRETDIR/splash.php"); } в if ($date > $contestStart) { include("SECRETDIR/contest.php"); } else { include("SECRETDIR/splash.php"); } 

Вы хотите настроить .htaccess, чтобы люди не могли указывать свои браузеры на secretdir и напрямую обращаться к contest.php

 // setup the start date (in a nice legible form) using any // of the formats found on the following page: // http://www.php.net/manual/en/datetime.formats.date.php $contestStart = "February 1, 2012"; // check if current time is before the specified date if (time() < strftime($contestStart)){ // Display splash screen } // date has already passed else { // Display page } 

Вам не нужно обертывать контент, у вас может быть что-то вроде:

 <?php if ( time() < strtotime('2012-02-03 00:00:00') ) { echo "not yet!"; exit; } //code here wont be executed 

Будьте осторожны с часовыми поясами! Ваш сервер может находиться в другом часовом поясе, чем ваш контент.