Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.186.6] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Коллеги, c JS не работал. Пытаюсь вычесть из даты дату и вернуть разницу как число в секундах. Что-то не работает:
от произвольной даты отнимаем сегодня. Math.ceil((Date("29/11/2017").getTime()-Date().getTime())*1000 ) |
Сообщ.
#2
,
|
|
|
Пользуйся этим https://momentjs.com/
|
Сообщ.
#3
,
|
|
|
Астарот
Без компонент как-то можно? |
Сообщ.
#4
,
|
|
|
Дядь, я ж не настоящий сварщик Работа с датой и временем - зверски заморочная штука в любых языках, поэтому и создают заточенные под это библиотеки. В общем лучше возьми момент.жс, сэкономишь много нервов.
|
Сообщ.
#5
,
|
|
|
Какое IDE для JS посоветуешь, что бы потыкаться без заморочек можно было?
|
Сообщ.
#6
,
|
|
|
Цитата ^D^ima @ Какое IDE для JS посоветуешь, что бы потыкаться без заморочек можно было? Без заморочек и notepad++ хватит А так мейнстрим это web storm, как я понимаю. |
Сообщ.
#7
,
|
|
|
Math.ceil(((new Date("2017-11-29")).getTime() - (new Date()).getTime()) / 1000) |
Сообщ.
#8
,
|
|
|
Цитата AVA12 @ new семен семеныч.... Спасибо. А как к типу строка привести? Добавлено Вместо div class="example" id="DateCountdown" data-timer="1234567"> вставляю: div class="example" id="DateCountdown" data-timer=String(Math.ceil(((new Date("2017-11-29")).getTime() - (new Date()).getTime()) / 1000))> не пашет, хотя через алерт выводит. alert(String(Math.ceil(((new Date("2017-11-29")).getTime() - (new Date()).getTime()) / 1000))) Это счетчик сколько осталось дней до события. Что я делаю не так? |
Сообщ.
#9
,
|
|
|
К строке можно привести обычным для JS способом - методы .toString() и .toLocaleString(). Но они плохие, лучше использовать .toISOString(). А вообще есть много путей, читай мануал от производителя.
|
Сообщ.
#10
,
|
|
|
Так? если да, то ошибку выдает
alert( (Math.ceil(((new Date("2017-11-29")).getTime() - (new Date()).getTime()) / 1000)).toISOString() ) /* Exception: TypeError: Math.ceil(...).toISOString is not a function @Scratchpad/2:13:4 */ |
Сообщ.
#11
,
|
|
|
Цитата div class="example" id="DateCountdown" data-timer=String(Math.ceil(((new Date("2017-11-29")).getTime() - (new Date()).getTime()) / 1000))> Э-э-э... Не пойму, ты пытаешься вставить неэкранированный код на языке программирования JS туда, где ожидается экранированный параметр языка разметки HTML? Это работать не должно и не будет. Будет работать что-нибудь вроде: <script> document.getElementById('DateCountdown').dataset.timer = Math.ceil(((new Date("2017-11-29")).getTime() - (new Date()).getTime()) / 1000) </script> P. S. Я думал, ты хочешь дату привести к строке. В общем случае используй String(значение), хотя в случае с DOM это необязательно. P. P. S. А вообще, лучше найми Web-программиста. Самый эффективный способ. |
Сообщ.
#12
,
|
|
|
Цитата AVA12 @ где ожидается экранированный параметр языка разметки HTML? походу да... спасибо |
Сообщ.
#13
,
|
|
|
Только так и не работает
пробовал ещё так так <script> document.getElementsByTagName('DateCountdown').dataset.data-timer = "123456" </script> и так <script> document.getElementById('DateCountdown').dataset.data-timer = "123456" </script> Цитата AVA12 @ .timer Так тоже не работает. Что такое .timer? Это ошибка, а должно быть .data-timer? |
Сообщ.
#14
,
|
|
|
Цитата ^D^ima @ Какое IDE для JS посоветуешь, что бы потыкаться без заморочек можно было? Atom+Node |
Сообщ.
#15
,
|
|
|
VS Code. пока так.
|