09.02.2016, 10:47
|
Новичок на форуме
|
|
Регистрация: 09.02.2016
Сообщений: 4
|
|
Помогите переделать скрипт отсчёт времени заменить месяц с английского на руский язык
Здравствуйте.
Есть код счетчика отсчета времени до события:
1, Он работает с форматом даты - 16 February 2020 так и с 2020,02,16
2, А мне нужно чтоб месяц был на русском языке формата 16 февраля 2020 Возможно ли такое реализовать?
time_to_x_hour=false;
function PremierTimer(premiere_date)
{
if(premiere_date)
{
var now=new Date();
var premiere=new Date(premiere_date);
time_to_x_hour=(premiere.getTime()-now.getTime())/1000;
}
if(time_to_x_hour<=0) {
if(document.getElementById('CountdownClockDiv'))
document.getElementById('CountdownClockDiv').style.display="none";
document.getElementById('CountdownClock').innerHTML="Событие состоялась"; return;
}
var daysleft = parseInt(time_to_x_hour/(24*60*60));
if (daysleft < 0) daysleft=0;
var d = daysleft - Math.floor(daysleft/10)*10;
var dd=0;
if (daysleft > 100) dd=daysleft-Math.floor(daysleft/100)*100;
var daysleftFinal;
var text_day;
if (d==1 && daysleft!=11 && dd!=11) text_day="День ";
else if (d>1 && d<5 && (daysleft<10 || daysleft>20) && (!dd || dd > 20 || dd < 5)) text_day="Дня ";
else if (d>=0) text_day="Дней ";
if (daysleft > 0) daysleftFinal = 'Событие через<br /><span class="daysLeft">' + daysleft + ' ' + text_day + '</span><span class="timeLeft">+';
else daysleftFinal = '';
var hours=parseInt((time_to_x_hour-daysleft*(24*60*60))/(60*60));
var minutes=parseInt((time_to_x_hour-daysleft*(24*60*60)-hours*(60*60))/60);
var seconds=parseInt(time_to_x_hour-daysleft*(24*60*60)-hours*(60*60)-minutes*60);
hours=hours.toString().length>1?hours:"0"+hours;
minutes=minutes.toString().length>1?minutes:"0"+minutes;
seconds=seconds.toString().length>1?seconds:"0"+seconds;
time_to_x_hour--;
if(!document.getElementById('CountdownClockHTML'))
document.getElementById('CountdownClock').innerHTML="<div id='CountdownClockHTML'></div>";
if(document.getElementById('CountdownClockHTML'))
document.getElementById('CountdownClockHTML').innerHTML=( daysleftFinal ) +
hours+':'+
minutes+':'+
seconds + '</span>';
setTimeout(function(){PremierTimer();},1000);
}
<div id="CountdownClock"><div id="CountdownClockHTML"><span class="daysLeft"></span><span class="timeLeft"></span></div></div>
<script src="/js/time/clock.js" type="text/javascript"></script>
<script>$(function(){ PremierTimer('16 February 2020,00:00:00'); });</script>
|
|
09.02.2016, 11:15
|
|
Профессор
|
|
Регистрация: 18.05.2011
Сообщений: 1,207
|
|
<script>
function PremierTimer(premiere_date){
var premiere_date = new Date(premiere_date);
monthA = 'января,февраля,марта,апреля,мая,июня,июля,августа,сентября,октября,ноября,декабря'.split(',');
return (premiere_date.getDate() + ' ' + monthA[premiere_date.getMonth()] + ' ' + premiere_date.getFullYear());
}
alert(PremierTimer('16 February 2020,00:00:00'));
</script>
|
|
09.02.2016, 11:33
|
Новичок на форуме
|
|
Регистрация: 09.02.2016
Сообщений: 4
|
|
Спасибо конечно но так не работает выскакивает окно Подтвердить создание диалоговых окон.
И отсчёт времени не показывает как 16 февраля 2020 так 16 February 2020
|
|
09.02.2016, 12:04
|
|
Профессор
|
|
Регистрация: 18.05.2011
Сообщений: 1,207
|
|
Переделывайте скрипт под себя.
<script>
document.addEventListener('DOMContentLoaded',function () {
var monthA = 'января,февраля,марта,апреля,мая,июня,июля,августа,сентября,октября,ноября,декабря'.split(',');
var time_to_x_hour = false;
function PremierTimer(premiere_date) {
if (premiere_date) {
var now = new Date();
var premiere = new Date(premiere_date);
time_to_x_hour = (premiere.getTime() - now.getTime()) / 1000;
}
document.querySelector('#event').textContent = premiere.getDate() + ' ' + monthA[premiere.getMonth()] + ' ' + premiere.getFullYear();
if (time_to_x_hour <= 0) {
if (document.getElementById('CountdownClockDiv'))
document.getElementById('CountdownClockDiv').style.display = "none";
document.getElementById('CountdownClock').innerHTML = "Событие состоялась"; return;
}
var daysleft = parseInt(time_to_x_hour / (24 * 60 * 60));
if (daysleft < 0) daysleft = 0;
var d = daysleft - Math.floor(daysleft / 10) * 10;
var dd = 0;
if (daysleft > 100) dd = daysleft - Math.floor(daysleft / 100) * 100;
var daysleftFinal;
var text_day;
if (d == 1 && daysleft != 11 && dd != 11) text_day = "День ";
else if (d > 1 && d < 5 && (daysleft < 10 || daysleft > 20) && (!dd || dd > 20 || dd < 5)) text_day = "Дня ";
else if (d >= 0) text_day = "Дней ";
if (daysleft > 0) daysleftFinal = 'Событие через<br /><span class="daysLeft">' + daysleft + ' ' + text_day + '</span><span class="timeLeft">+';
else daysleftFinal = '';
var hours = parseInt((time_to_x_hour - daysleft * (24 * 60 * 60)) / (60 * 60));
var minutes = parseInt((time_to_x_hour - daysleft * (24 * 60 * 60) - hours * (60 * 60)) / 60);
var seconds = parseInt(time_to_x_hour - daysleft * (24 * 60 * 60) - hours * (60 * 60) - minutes * 60);
hours = hours.toString().length > 1 ? hours : "0" + hours;
minutes = minutes.toString().length > 1 ? minutes : "0" + minutes;
seconds = seconds.toString().length > 1 ? seconds : "0" + seconds;
time_to_x_hour--;
if (!document.getElementById('CountdownClockHTML'))
document.getElementById('CountdownClock').innerHTML = "<div id='CountdownClockHTML'></div>";
if (document.getElementById('CountdownClockHTML'))
document.getElementById('CountdownClockHTML').innerHTML = (daysleftFinal) +
hours + ':' +
minutes + ':' +
seconds + '</span>';
setTimeout(function () { PremierTimer(); }, 1000);
}
PremierTimer('16 February 2020,00:00:00');
})
</script>
<div id="event"></div>
<div id="CountdownClock"><div id="CountdownClockHTML"><span class="daysLeft"></span><span class="timeLeft"></span></div></div>
<script></script>
|
|
09.02.2016, 12:51
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от denik
|
мне нужно чтоб месяц был на русском языке формата 16 февраля 2020 Возможно ли такое реализовать?
|
alert((new Date()).toLocaleDateString('ru-RU'))
|
|
09.02.2016, 19:19
|
Новичок на форуме
|
|
Регистрация: 09.02.2016
Сообщений: 4
|
|
Вы меня не правильно наверное поняли. В статьях уже проставлена дата формата 16 февраля 2020 месяц на русском языке. Чтоб не переписывать все статьи и нужно переделать скрипт. чтоб он отсчёт вёл от такова вывода даты 11 августа 2020, 18 апреля 2020 и т.д.
|
|
09.02.2016, 22:43
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,112
|
|
denik,
остальные месяцы допишите сами
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<div id="CountdownClock"><div id="CountdownClockHTML"><span class="daysLeft"></span><span class="timeLeft"></span></div></div>
<script> time_to_x_hour = false;
function PremierTimer(premiere_date) {
if (premiere_date) {
premiere_date = premiere_date.replace(/[а-яё]+/gi, function(a) {
return {
'января': 'January',
'февраля': 'February'
}[a] || a
})
var now = new Date();
var premiere = new Date(premiere_date);
time_to_x_hour = (premiere.getTime() - now.getTime()) / 1000;
}
if (time_to_x_hour <= 0) {
if (document.getElementById('CountdownClockDiv'))
document.getElementById('CountdownClockDiv').style.display = "none";
document.getElementById('CountdownClock').innerHTML = "Событие состоялась";
return;
}
var daysleft = parseInt(time_to_x_hour / (24 * 60 * 60));
if (daysleft < 0) daysleft = 0;
var d = daysleft - Math.floor(daysleft / 10) * 10;
var dd = 0;
if (daysleft > 100) dd = daysleft - Math.floor(daysleft / 100) * 100;
var daysleftFinal;
var text_day;
if (d == 1 && daysleft != 11 && dd != 11) text_day = "День ";
else if (d > 1 && d < 5 && (daysleft < 10 || daysleft > 20) && (!dd || dd > 20 || dd < 5)) text_day = "Дня ";
else if (d >= 0) text_day = "Дней ";
if (daysleft > 0) daysleftFinal = 'Событие через<br /><span class="daysLeft">' + daysleft + ' ' + text_day + '</span><span class="timeLeft">+';
else daysleftFinal = '';
var hours = parseInt((time_to_x_hour - daysleft * (24 * 60 * 60)) / (60 * 60));
var minutes = parseInt((time_to_x_hour - daysleft * (24 * 60 * 60) - hours * (60 * 60)) / 60);
var seconds = parseInt(time_to_x_hour - daysleft * (24 * 60 * 60) - hours * (60 * 60) - minutes * 60);
hours = hours.toString().length > 1 ? hours : "0" + hours;
minutes = minutes.toString().length > 1 ? minutes : "0" + minutes;
seconds = seconds.toString().length > 1 ? seconds : "0" + seconds;
time_to_x_hour--;
if (!document.getElementById('CountdownClockHTML'))
document.getElementById('CountdownClock').innerHTML = "<div id='CountdownClockHTML'></div>";
if (document.getElementById('CountdownClockHTML'))
document.getElementById('CountdownClockHTML').innerHTML = (daysleftFinal) +
hours + ':' +
minutes + ':' +
seconds + '</span>';
setTimeout(function() {
PremierTimer();
}, 1000);
}</script>
<script>$(function(){ PremierTimer('16 февраля 2020,00:00:00'); });</script>
Последний раз редактировалось рони, 09.02.2016 в 22:46.
|
|
10.02.2016, 01:34
|
Новичок на форуме
|
|
Регистрация: 09.02.2016
Сообщений: 4
|
|
Вот вам спасибо большое!!! Это то что мне было нужно. Работает как часы
|
|
|
|