С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191

Русское название день месяца и Русское название день недели

27.09.2025, 12:59. Показов 2594. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте

Пожалуйста, помогите

Есть код

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = JS_timeObj.toString();
    JS_timeObj2 = JS_timeObj2.substring(0,3) + ", " +
                  JS_timeObj2.substring(4,10) + "  " +
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
На выходе отображается Английское название день месяца и Английское название день недели

Code
1
Sat, Sep 27 12:57:46 2025 GMT+0300
Code
1
2
3
Sun,Mon,Tue,Wed,Thu,Fri,Sat
 
Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec

Возможно или нет сделать так, чтобы было Русское название день месяца и Русское название день недели?

Code
1
2
3
Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь
 
Понедельник,Вторник,Среда,Четверг,Пятница,Суббота,Воскресенье
Или типа такого?

Code
1
2
3
4
5
%a  Сокращённое название дня недели От Sun до Sat
%A  Полное название дня недели   От Sunday до Saturday
 
%b  Сокращённое название месяца на основе локали От Jan до Dec
%B  Полное название месяца на основе локали
Спасибо
Миниатюры
Русское название день месяца и Русское название день недели  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2025, 12:59
Ответы с готовыми решениями:

Составьте массив дней недели. Выведите все дни недели, а текущий день выведите курсивом
Составьте массив дней недели. Выведите все дни недели, а текущий день выведите курсивом.

Определить день недели для последнего дня месяца
Есть функция, возвращающую последнее число месяца. function getLastDayOfMonth(year, month) { ...

Дата вводится в трех полях: день, месяц, год. Определить день недели
Помогите решить задачку,плииз

39
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3818 / 1656 / 428
Регистрация: 14.03.2022
Сообщений: 4,132
28.09.2025, 10:42
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SharkyEXE Посмотреть сообщение
возможно или нет сделать блок покороче
Конечно можно!
Например вот так...

JavaScript
1
2
3
4
5
6
7
8
const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; 
const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
String.prototype.replaceArray = function(find, replace) {
    const r = new RegExp(find.join('|')); 
    return this.replace(r, v => replace[find.indexOf(v)]);
};
let v = 'Sat, Sep 27 12:57:46 2025 GMT+0300'
console.log(v.replaceArray(reps, reps2));
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
28.09.2025, 15:50  [ТС]
krvsa, здравствуйте

Спасибо Вам, проверяю

UPD. Да, работает, отлично

Добавлено через 5 часов 0 минут
А если мне еще добавку сделать - названия месяцев - то блок String.prototype.replaceArray увеличится на одну строку?

const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];

const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];

String.prototype.replaceArray = function(find, replace) {
const r = new RegExp(find.join('|'));
return this.replace(r, v => replace[find.indexOf(v)]);
return this.replace(r, w => replace[find.indexOf(w)]);
};
let v = 'Sat, Sep 27 12:57:46 2025 GMT+0300'
console.log(v.replaceArray(reps, reps2));
console.log(w.replaceArray(reps3, reps4));
Никак нельзя блок String.prototype.replaceArray как-то оптимизировать, просто по большому счету строки одинаковые
return this.replace(r, v => replace[find.indexOf(v)]);
return this.replace(r, w => replace[find.indexOf(w)]);

разница только v или w
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3818 / 1656 / 428
Регистрация: 14.03.2022
Сообщений: 4,132
28.09.2025, 16:30
SharkyEXE, я не понял куда ты "клонишь"...
У тебя есть метод строки replaceArray... Все что тебе нужно - просто пользоваться им.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
 
String.prototype.replaceArray = function(find, replace) {
    const r = new RegExp(find.join('|')); 
    return this.replace(r, v => replace[find.indexOf(v)]);
};
let v = 'Sat, Sep 27 12:57:46 2025 GMT+0300'
console.log(v.replaceArray(reps, reps2).replaceArray(reps3, reps4));
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
28.09.2025, 16:57  [ТС]
krvsa, здравствуйте

Супер, класс, все получилось. Спасибо Вам человеческое!

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = JS_timeObj.toString();
 
    const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; //Массив 1
    const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота']; // массив 2
 
    const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; //Массив 3
    const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь']; // массив 4
 
    String.prototype.replaceArray = function(find, replace) {
        const r = new RegExp(find.join('|')); 
        return this.replace(r, v => replace[find.indexOf(v)]);
    };
 
    JS_timeObj44 = JS_timeObj2.substring(0,3).replaceArray(reps, reps2);
    JS_timeObj66 = JS_timeObj2.substring(4,10).replaceArray(reps3, reps4);
 
    JS_timeObj2 = JS_timeObj44 + ", " +
                  JS_timeObj66 + "  " +
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
Воскресенье, Сентябрь 28 16:57:07 2025 GMT+0300
Миниатюры
Русское название день месяца и Русское название день недели  
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3818 / 1656 / 428
Регистрация: 14.03.2022
Сообщений: 4,132
28.09.2025, 17:30
Цитата Сообщение от SharkyEXE Посмотреть сообщение
JavaScript
1
2
JS_timeObj44 = JS_timeObj2.substring(0,3).replaceArray(reps, reps2);
    JS_timeObj66 = JS_timeObj2.substring(4,10).replaceArray(reps3, reps4);
При таком использовании метод replaceArray не нужен.
Аналог

JavaScript
1
2
JS_timeObj44 = reps2[reps.indexOf(JS_timeObj2.substring(0,3))];
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,10))];
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
29.09.2025, 20:34  [ТС]
krvsa, здравствуйте

Прошу прощения, возможно я что-то делаю не так - но почему при таком варианте

function showclock(){
JS_timeObj.setTime(systime_millsec);
systime_millsec += 1000;
JS_timeObj2 = JS_timeObj.toString();

const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; //Массив 1
const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота']; // массив 2

const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; //Массив 3
const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь']; // массив 4

JS_timeObj44 = reps2[reps.indexOf(JS_timeObj2.substring(0,3))];
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,10 ))];

JS_timeObj2 = JS_timeObj44 + ", " +
JS_timeObj66 + " " +
checkTime(JS_timeObj.getHours()) + ":" +
checkTime(JS_timeObj.getMinutes()) + ":" +
checkTime(JS_timeObj.getSeconds()) + " " +
JS_timeObj.getFullYear() + " GMT" +
timezone;
$("system_time").innerHTML = JS_timeObj2;
setTimeout("showclock()", 1000);
}
на выхлопе - так
Code
1
Понедельник, undefined 20:31:58 2025 GMT+0300
В строке
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,10 ))];
очень тяжело ошибиться, но почему-то выхлоп - undefined
Миниатюры
Русское название день месяца и Русское название день недели  
0
 Аватар для voraa
1244 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,280
29.09.2025, 22:15
Хотелось бы увидеть исходную строку JS_timeObj2
Подозреваю, что начало там
"Mon, Sep 29 ...."
Тогда название месяца идет с 5 символа (если считать с 0) и до 8 (не включая). Тогда должно быть
JavaScript
1
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(5,8))];
Добавлено через 32 минуты
Вообще не понятна эта возня с названиями на английском, потом заменой на русский...
У вас есть объект даты. Почему сразу на русский не выводить?
JavaScript
1
2
3
4
5
6
7
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = new Intl.DateTimeFormat("ru", {dateStyle: "full", timeStyle: "long"}).format(JS_timeObj);
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
Ну будете вы получать дату в формате типа
Code
1
понедельник, 29 сентября 2025 г. в 22:10:15 GMT+3
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
30.09.2025, 06:14  [ТС]
voraa, здравствуйте

1)
JS_timeObj2.substring(0,3); - отдает первые три буквы названия дня Sun Mon Tue
JS_timeObj2.substring(4,10); - отдает первые три буквы названия месяца Jan Feb Mar

", " - отдает запятую и пробел
" " - отдает два пробела

Я просто не пойму, почему метод
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = JS_timeObj.toString();
 
    const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; //Массив 1
    const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота']; // массив 2
 
    const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; //Массив 3
    const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь']; // массив 4
 
    String.prototype.replaceArray = function(find, replace) {
        const r = new RegExp(find.join('|')); 
        return this.replace(r, v => replace[find.indexOf(v)]);
    };
 
    JS_timeObj44 = JS_timeObj2.substring(0,3).replaceArray(reps, reps2);
    JS_timeObj66 = JS_timeObj2.substring(4,10).replaceArray(reps3, reps4);
 
    JS_timeObj2 = JS_timeObj44 + ", " +
                  JS_timeObj66 + "  " +
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
работает безупречно
Воскресенье, Сентябрь 28 16:57:07 2025 GMT+0300

А метод
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function showclock(){
JS_timeObj.setTime(systime_millsec);
systime_millsec += 1000;
JS_timeObj2 = JS_timeObj.toString();
 
const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; //Массив 1
const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота']; // массив 2
 
const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; //Массив 3
const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь']; // массив 4
 
JS_timeObj44 = reps2[reps.indexOf(JS_timeObj2.substring(0,3))];
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,10 ))];
 
JS_timeObj2 = JS_timeObj44 + ", " +
JS_timeObj66 + " " +
checkTime(JS_timeObj.getHours()) + ":" +
checkTime(JS_timeObj.getMinutes()) + ":" +
checkTime(JS_timeObj.getSeconds()) + " " +
JS_timeObj.getFullYear() + " GMT" +
timezone;
$("system_time").innerHTML = JS_timeObj2;
setTimeout("showclock()", 1000);
}
ломается на выводе имя месяца как undefined
Понедельник, undefined 20:31:58 2025 GMT+0300

В чем разница между двумя одинаковыми способами, когда по идее обои способы обязаны одинаково русифицировать?

2) Почему сразу на русский не выводить?
Честно, прозрачно, откровенно - хочется русификации на данный момент.
Мол, есть оригинал, что плохого в простом русификаторе оригинала?
Миниатюры
Русское название день месяца и Русское название день недели  
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
30.09.2025, 06:41  [ТС]
voraa, здравствуйте

Ваш совет тоже не помогает, все равно отдает имя месяца как undefined
Code
1
Вторник, undefined 06:41:07 2025 GMT+0300
function showclock(){
JS_timeObj.setTime(systime_millsec);
systime_millsec += 1000;
JS_timeObj2 = JS_timeObj.toString();

const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];

const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];

JS_timeObj44 = reps2[reps.indexOf(JS_timeObj2.substring(0,3))];
// JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,10 ))];
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(5,8) )];

JS_timeObj2 = JS_timeObj44 + ", " +
JS_timeObj66 + " " +
checkTime(JS_timeObj.getHours()) + ":" +
checkTime(JS_timeObj.getMinutes()) + ":" +
checkTime(JS_timeObj.getSeconds()) + " " +
JS_timeObj.getFullYear() + " GMT" +
timezone;
$("system_time").innerHTML = JS_timeObj2;
setTimeout("showclock()", 1000);
}
Такой ерундистики впервые встречаю. Имя день недели переводится отлично, имя месяца - undefined. В чем разница между двумя строками - ту и ошибиться от слова очень тяжело
JS_timeObj44 = reps2[reps.indexOf(JS_timeObj2.substring(0,3))];
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(5,8) )];
0
 Аватар для voraa
1244 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,280
30.09.2025, 07:17
Цитата Сообщение от SharkyEXE Посмотреть сообщение
Ваш совет тоже не помогает, все равно отдает имя месяца как undefined
Еще раз

Цитата Сообщение от voraa Посмотреть сообщение
Хотелось бы увидеть исходную строку JS_timeObj2
Цитата Сообщение от SharkyEXE Посмотреть сообщение
В чем разница между двумя одинаковыми способами, когда по идее обои способы обязаны одинаково русифицировать?
Разница в том, что в первом работающем месяце используется replace. Он находит в указанной подстроке то, что нужно и заменяет. В неработающем методе вы пытаетесь сами заменить символы стоящие в каких то позициях и считаете эти позиции неправильно. (И я тоже считал неправильно, не видя исходной английской строки)
А строка там имеет вид
Code
1
Tue Sep 30 2025 07:07:49 GMT+0300 (Москва, стандартное время)
Ну ошибся и я, думая, что там между днем недели и месяцем есть запятая.
Месяц занимает позиции от 4 до 7 (не включая)
Значит
JavaScript
1
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,7) )];
должно работать.

Добавлено через 4 минуты
Цитата Сообщение от SharkyEXE Посмотреть сообщение
Мол, есть оригинал, что плохого в простом русификаторе оригинала?
Куча лишней работы.
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
30.09.2025, 09:43  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
Хотелось бы увидеть исходную строку JS_timeObj2
Я не знаток, не академик, не профессионал, напишу просто

Есть ВайФай роутер интернетовский ASUS RT-N56U B1 устройство

Внутри роутера - типа операционной системы (Линукс или другая), не суть

Внутри роутера - есть настройки, вводишь в интернет-браузере адрес http://192.168.1.1/ - и попадаешь внутрь роутера, всяко-разные настройки

Есть раздел - лог роутера, мол, какие команды, функции выполняются, кто подключается к роутеру за ВайФай интернетом

Есть строка - текущая дата, время роутера

Сейчас пишется
Sat, Sep 27 12:57:46 2025 GMT+0300

Вот целиком страница: https://pastebin.com/xRECznS3

Только часть кода, что выводит строку

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = JS_timeObj.toString();
    JS_timeObj2 = JS_timeObj2.substring(0,3) + ", " +
                  JS_timeObj2.substring(4,10) + "  " +
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
На выхлопе такая отдача
Code
1
Sat, Sep 27 12:57:46 2025 GMT+0300
Разбор отдачи

Как я понимаю (могу ошибаться)

JS_timeObj2.substring(0,3); - отдает первые три буквы названия дня Sun Mon Tue Wed Thu Fri Sat
", " - отдает запятую и пробел после "первые три буквы названия дня Sun Mon Tue" - то есть Sun{запятая}{пробел}

JS_timeObj2.substring(4,10); - отдает первые три буквы названия месяца Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
СТОП. Видимо в этой строке еще и номер дня недели заложен Sep{пробел}29 - цифра 29 как ДОбавка, ДОписка к "первые три буквы названия месяца Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec"

" " - отдает два пробела после "первые три буквы названия месяца Jan Feb Mar" - то есть Sep 29{пробел}{пробел}

checkTime(JS_timeObj.getHours()) - отдает 2х значные (24-часа формат) цифры часы (01, 02..., 23)
checkTime(JS_timeObj.getMinutes()) - отдает 2х значные (24-часа формат) цифры минуты (01, 02..., 59)
checkTime(JS_timeObj.getSeconds()) - отдает 2х значные (24-часа формат) цифры секунды (01, 02..., 59)
JS_timeObj.getFullYear() - отдает цифры полный 4х значный год (2025, 2026, ..., 2100)
timezone - отдает тайзонут, сдвиг по времени

То есть получается, изначально позиция правильная 4,10 для отдачи имя месяц и день недели
Tue Sep 30
12345678910
0
 Аватар для voraa
1244 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,280
30.09.2025, 15:12
Цитата Сообщение от SharkyEXE Посмотреть сообщение
На выхлопе такая отдача
И где и как этот выхлоп попадает в вашу функцию?

JavaScript
1
2
3
JS_timeObj.setTime(systime_millsec);
systime_millsec += 1000;
JS_timeObj2 = JS_timeObj.toString();
Что такое JS_timeObj? Где и как это определяется?
Вы просто устанавливаете дату и время в JS_timeObj с какого то systime_millsec (где вы ее получаете?)
Потом эту дату и время преобразуете в строку функцией .toString()
Оно получается в виде
Code
1
Tue Sep 30 2025 07:07:49 GMT+0300 (Москва, стандартное время)
И уже из этой строки, а не из вашего выхлопа вы берете англ день недели и месяц.
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
30.09.2025, 15:20  [ТС]
voraa, здравствуйте

Я особо не понимаю, про что Вы.

Я проверю этот код
Code
1
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,7) )];
вечером 30.09.2025 - и напишу, ура-ура, или также имя месяца - undefined

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

Просто когда не шибко алле, от слова соовсем не алло, по чужому коду я Вам не отвечу на это
Что такое JS_timeObj? Где и как это определяется?
Вы просто устанавливаете дату и время в JS_timeObj с какого то systime_millsec (где вы ее получаете?)
Я нашел state.js библиотеку, модуль - как умно называется. Вероятно, это то, что нужно: https://pastebin.com/XwGXUN3E

То есть то, что мне работает, что я русифицирую - обращается к библиотеке state.js https://pastebin.com/XwGXUN3E

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var uptimeStr = "<% uptime(); %>";
var newformat_systime = uptimeStr.substring(8,11) + " " + uptimeStr.substring(5,7) + " " + uptimeStr.substring(17,25) + " " + uptimeStr.substring(12,16);  //Ex format: Jun 23 10:33:31 2008
var systime_millsec = Date.parse(newformat_systime); // millsec from system
var JS_timeObj = new Date(); // 1970.1.1
 
function show_time(){
    JS_timeObj.setTime(systime_millsec); // Add millsec to it.
    JS_timeObj3 = JS_timeObj.toString();
    JS_timeObj3 = checkTime(JS_timeObj.getHours()) + ":" +
            checkTime(JS_timeObj.getMinutes()) + ":" +
            checkTime(JS_timeObj.getSeconds());
    $('systemtime').innerHTML ="<a href='/Advanced_System_Content.asp'>" + JS_timeObj3 + "</a>";
    systime_millsec += 1000;
    stime_ID = setTimeout("show_time();", 1000);
}
 
function showClockLogArea(){
    if(jQuery('#system_time').size() == 0){
        JS_timeObj.setTime(systime_millsec);
        systime_millsec += 1000;
 
        JS_timeObj2 = JS_timeObj.toString();
        JS_timeObj2 = JS_timeObj2.substring(0,3) + ", " +
        JS_timeObj2.substring(4,10) + "  " +
        checkTime(JS_timeObj.getHours()) + ":" +
        checkTime(JS_timeObj.getMinutes()) + ":" +
        checkTime(JS_timeObj.getSeconds()) + "  " +
        JS_timeObj.getFullYear() + " GMT" + timezone;
    }
    jQuery("#system_time_log_area").html(JS_timeObj2);
    setTimeout("showClockLogArea()", 1000);
}
Просьба не обижаться, пожалуйста
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
30.09.2025, 22:23  [ТС]
voraa, здравствуйте

1) Спасибо Вам человеческое - теперь все четко, строка помогла
Code
1
JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,7) )];
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = JS_timeObj.toString();
 
    const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
    const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
 
    const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
 
    JS_timeObj44 = reps2[reps.indexOf(JS_timeObj2.substring(0,3))];
    JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,7) )];
 
    JS_timeObj2 = JS_timeObj44 + ", " +
                  JS_timeObj66 + "  " +
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
На выхлопе - так
Вторник, Сентябрь 22:19:43 2025 GMT+0300
Небольшая бяка - между Русскими именем месяца Сентябрь и цифрами часы 22 пропало цифра дня недели 30

2) Ничего страшного

Сделал ДОбавку (выделил жирным) - отдачу цифры день недели
Code
1
JS_timeObj2.substring(8,10) + "  " +
Финальное итого

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = JS_timeObj.toString();
 
    const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
    const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
 
    const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
 
    JS_timeObj44 = reps2[reps.indexOf(JS_timeObj2.substring(0,3))];
    JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,7) )];
 
    JS_timeObj2 = JS_timeObj44 + ", " +
                  JS_timeObj66 + "  " +
                  [B]JS_timeObj2.substring(8,10) + "  " +[/B]
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
На выхлопе - так
Вторник, Сентябрь 30 22:22:21 2025 GMT+0300
3) Была опаска, мол, будет или нет работать нормально когда день будет Октябрь 1, Октябрь 2,... Октябрь 9 (мол цифра день недели от 1 до 9 включительно) - все отлично
Среда, Октябрь 01 08:24:10 2025 GMT+1300
4) Если вместо тягомутины-спортивный интерес-русификатора использовать Ваш код Русское название день месяца и Русское название день недели
Code
1
2
3
4
5
6
7
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = new Intl.DateTimeFormat("ru", {dateStyle: "full", timeStyle: "long"}).format(JS_timeObj);
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
выхлоп тоже отличный
Code
1
среда, 1 октября 2025 г., 06:40:46 GMT+3
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
01.10.2025, 21:29  [ТС]
voraa, здравствуйте

Прошу прощения за назойливость, а вот если Русский язык работает в этом варианте
Code
1
2
3
4
5
6
7
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = new Intl.DateTimeFormat("ru", {dateStyle: "full", timeStyle: "long"}).format(JS_timeObj);
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
А никак нельзя применить Русский язык, типа функцию, параметр new Intl.DateTimeFormat("ru" для исходной строки

Code
1
2
3
4
5
6
7
8
JS_timeObj2 = JS_timeObj44 + ", " +
                  JS_timeObj66 + "  " +
                  [B]JS_timeObj2.substring(8,10) + "  " +[/B]
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
Или параметр toLocaleString

В интернете много что написано, просто я сам не осилю, как то работает
0
 Аватар для voraa
1244 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,280
01.10.2025, 21:43
Цитата Сообщение от SharkyEXE Посмотреть сообщение
А никак нельзя применить Русский язык, типа функцию, параметр new Intl.DateTimeFormat("ru" для исходной строки
Нет. Потому, что Intl.DateTimeFormat работает не со строкой, а с объектом Date
JavaScript
1
new Intl.DateTimeFormat("ru", {dateStyle: "full", timeStyle: "long"}).format(JS_timeObj);
То, что передается в format - JS_timeObj это объект Date, а не строка.

Вместо
JavaScript
1
JS_timeObj2.substring(8,10) + "  " +
лучше уж
JavaScript
1
checkTime(JS_timeObj.getDate()) + "  " +
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
01.10.2025, 22:12  [ТС]
voraa, здравствуйте

Спасибо Вам, попробую сборку и с checkTime(JS_timeObj.getDate()) + " " +

А toLocaleString тоже нельзя применить для
Code
1
2
3
4
5
6
7
8
JS_timeObj2 = JS_timeObj44 + ", " +
                  JS_timeObj66 + "  " +
                  [B]JS_timeObj2.substring(8,10) + "  " +[/B]
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
?
0
 Аватар для voraa
1244 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,280
01.10.2025, 22:53
Цитата Сообщение от SharkyEXE Посмотреть сообщение
А toLocaleString тоже нельзя применить для
Можно, но с тем же результатом. Метод toLocaleString применяется к объекту Date, а не к строке
Можно так
JavaScript
1
JS_timeObj2 = JS_timeObj.toLocaleString("ru", {dateStyle: "full", timeStyle: "long"});
Разница в том, что Intl.DateTimeFormat можно использовать более эффективно по времени, при многократных форматированиях. Можно было бы записать так

JavaScript
1
2
3
4
5
6
7
8
var ruDateFormat = new Intl.DateTimeFormat("ru", {dateStyle: "full", timeStyle: "long"});
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = ruDateFormat.format(JS_timeObj);
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
Но поскольку у вас это работает 1 раз в сек, то такая экономия ничего не даст.
Так, что можно и toLocaleString использовать и Intl.DateTimeFormat

Добавлено через 11 минут
Еще мне совершенно не понятна возня с миллисекундами
JavaScript
1
2
JS_timeObj.setTime(systime_millsec);
systime_millsec += 1000;
Зачем это? Почему не просто
JavaScript
1
JS_timeObj = new Date();
Тем более, что
JavaScript
1
setTimeout("showclock()", 1000);
Совершенно не гарантирует, что функция начнет выполняться через 1000 мс.
Это означает, что через 1000 мс функция будет поставлена в очередь на выполнение. А если перед ней там еще что то есть (какие то обработчики событий), то соответственно она начнет выполняться только после них.
0
2 / 2 / 0
Регистрация: 09.08.2015
Сообщений: 191
02.10.2025, 09:46  [ТС]
voraa, здравствуйте

1) Проверил такой вариант

Вместо
JS_timeObj2.substring(8,10) + " " +
лучше уж
checkTime(JS_timeObj.getDate()) + " " +
Полный код
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = JS_timeObj.toString();
 
    const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
    const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
 
    const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
 
    JS_timeObj44 = reps2[reps.indexOf(JS_timeObj2.substring(0,3))];
    JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,7) )];
 
    JS_timeObj2 = JS_timeObj44 + ", " +
                  JS_timeObj66 + "  " +
                  checkTime(JS_timeObj.getDate()) + "  " +
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
Выхлоп тоже отличный, номер дня недели присутствует (2х значный)
Четверг, Октябрь 02 09:45:38 2025 GMT+0300
2)
Еще мне совершенно не понятна возня с миллисекундами
А как переделать код
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function showclock(){
    JS_timeObj.setTime(systime_millsec);
    systime_millsec += 1000;
    JS_timeObj2 = JS_timeObj.toString();
 
    const reps = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
    const reps2 = ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'];
 
    const reps3 = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    const reps4 = ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'ИюНь', 'ИюЛь', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
 
    JS_timeObj44 = reps2[reps.indexOf(JS_timeObj2.substring(0,3))];
    JS_timeObj66 = reps4[reps3.indexOf(JS_timeObj2.substring(4,7) )];
 
    JS_timeObj2 = JS_timeObj44 + ", " +
                  JS_timeObj66 + "  " +
                  checkTime(JS_timeObj.getDate()) + "  " +
                  checkTime(JS_timeObj.getHours()) + ":" +
                  checkTime(JS_timeObj.getMinutes()) + ":" +
                  checkTime(JS_timeObj.getSeconds()) + "  " +
                  JS_timeObj.getFullYear() + " GMT" +
                  timezone;
    $("system_time").innerHTML = JS_timeObj2;
    setTimeout("showclock()", 1000);
}
БЕЗ этих строк
JS_timeObj.setTime(systime_millsec);
systime_millsec += 1000;
Я всегда чем меньше строк, тем лучше - и коду легче работается, и особо не алло, как я - немножечко понимать, как это работается?
0
 Аватар для voraa
1244 / 1145 / 178
Регистрация: 21.01.2024
Сообщений: 5,280
02.10.2025, 17:12
Цитата Сообщение от SharkyEXE Посмотреть сообщение
А как переделать код
Цитата Сообщение от SharkyEXE Посмотреть сообщение
БЕЗ этих строк
JS_timeObj.setTime(systime_millsec);
systime_millsec += 1000;
Я же выше написал. Вместо этих строк
JavaScript
1
JS_timeObj = new Date();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.10.2025, 17:12
Помогаю со студенческими работами здесь

Напишите функцию, которая принимает год, месяц и день и возвращает соответствующий день недели.
Вам дана программа, которая принимает год, месяц и день в качестве входных данных. Напишите...

date-fns форматирование из dd.mm.yyyy в день и название месяца
Добрый день. Пытал по оф. документации форматнуть дату вида 06.08.2020 в 6 августа. Но почему не...

bootstrap react-infinite-calendar. Как перевести названия месяцев на русский язык?
Локализовать дни недели получилось. Не знаю как сделать чтоб и названия месяцев были на русском

Сделайте функцию, которая принимает параметром число от 1 до 7, а возвращает день недели на русском языке
Сделайте функцию, которая принимает параметром число от 1 до 7, а возвращает день недели на русском...

ищу DatePicker с временем, списком выбора месяца и возможностью смены месяца после выбора числа
Привет. Ищу хороший DatePicker с указанными функциям. Немного расшифрую, что от него нужно: 1)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru