var countDownDate = new Date("<?php echo file_get_contents('wipetime.txt');?>").getTime();
Пытаюсь сделать таймер обратного отсчета. Файл "wipetime.txt" меняется каждые несколько дней, поэтому я пытаюсь сделать это так, чтобы я мог получить файл, когда страница загрузится и обратный отсчет до этой даты.
Проблема в том, что если я повторяю это значение php где-нибудь на странице, оно работает. Он отображает содержимое файла. Однако, если бы я повторил его внутри countDownDate или даже в предупреждении, я ничего не получил бы. Никакой ошибки, просто ничего.
Я вообще не вижу ничего плохого.
Обновлено: вот и все, если вы хотите знать
<!--Whitelist timer-->
<script>
var countDownDate = new Date("<?php echo file_get_contents('wipetime.txt');?>").getTime();
var x = setInterval(function() {
var now = new Date().getTime();
var distance = countDownDate - now;
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
document.getElementById("countdown").innerHTML = "Whitelist expires in " + days + "d " + hours + "h "
+ minutes + "m " + seconds + "s ";
if (distance < 0) {
clearInterval(x);
document.getElementById("countdown").innerHTML = "EXPIRED";
}
}, 1000);
</script>
И мне очень жаль, если информация, которую я дал, является расплывчатой. Я действительно не знаю, что еще сказать, это действительно базовое и / должно / работать, но по какой-то причине я просто ничего не получаю. Я не замечаю чего-то глупого?
Проблема в том, что мы не можем сказать, что это за сгенерированный код на странице. Мы не можем сказать, делаете ли вы это в файле php или файле js.
var countDownDate = новая дата ("05 октября 2018 г. 06:39:03") .getTime (); Это то, о чем говорит хромированная консоль. Вся страница находится на php, но конкретный javascript находится в конце страницы
Если я вставлю 05 октября 2018 г. 06:39:03 в кавычки, а не в php, это сработает, но это означает, что я не могу получить дату динамически, что я и пытаюсь сделать. Если я использую сценарий, который опубликовал выше, он вообще ничего не отображает
Сделайте console.info(countDownDate); после его настройки. У меня сложилось впечатление, что текстовый файл содержит специальный символ, который делает недействительным время.
Эй, вот и все, мой человек! Я должен был понять это раньше, но в моем файле была лишняя пустая строка, которая отбрасывала все. Я не видел этого, пока вы не сказали мне проверить журнал. Ценить это



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Есть вероятность, что файл wipetime.txt содержит некоторые специальные символы (возможно, возврат каретки). Вы можете сделать две вещи:
Код:
<?php
$content = file_get_contents('wipetime.txt');
$timeStr = trim($content); // should remove trailing characters like new lines.
?>
var countDownDate = new Date("<?php echo $timeStr;?>").getTime();
Я создаю wipetime.txt из командной строки в Linux и по какой-то причине выводит дополнительную строку, поэтому этот ответ работает отлично.
Им не повезет, если значение по какой-то причине содержит ". json_encode() - удобный способ избежать вставки в JavaScript.
Можете ли вы показать сгенерированный html? Покажите нам, что появляется в разделе page-source / view-source. Это тоже файл
.js?