Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431

Как к дате добавить "n" дней?

24.01.2024, 19:22. Показов 10436. Ответов 171
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть какая то дата например 10.02.2024, надо получить несколько дат,

дата1 = дата + 5 дней

дата2 = дата + 73 дня

дата3 = дата - 19 дней

дата4 = дата - 75 дней

как это сделать?

Добавлено через 7 минут
PHP/HTML
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
    <meta charset="UTF-8">
    <title>Chinese Zodiac</title>
    <style>
        @import url(https://db.onlinewebfonts.com/c/20a04794234e8f0981f0400c51ba02cd?family=OpticalBDB+Normal);orUse font-face declaration Fonts.(http | https)
        @font-face {
        font-family: "OpticalBDB Normal";
        src: url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.eot");
        src: url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.eot?#iefix")format("embedded-opentype"),
        url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.woff2")format("woff2"),
        url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.woff")format("woff"),
        url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.ttf")format("truetype"),
        url("https://db.onlinewebfonts.com/t/20a04794234e8f0981f0400c51ba02cd.svg#OpticalBDB Normal")format("svg");
        }
        
        #desiredDate {
            outline: none;
            background-color: hsl(120,100%,97%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,25%);
            border-radius: 15px/10px;
            font: bold 24px serif;
            padding: 5px 20px;
            margin-bottom: 20px;
            letter-spacing: 3px;
            font-family: "OpticalBDB Normal";
            
        }
        #info {
            white-space: nowrap;
            background-color: hsl(120,100%,98%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,30%);
            border-radius: 15px/10px;
            font: bold 16px serif;
            padding: 10px 20px;
        }
    </style>
</head>
<body>
 
<input type="date" id="desiredDate" min="1863-01-01" max="2299-12-31" />
<br/>
<div id="info"></div>
 
  <script>
    var listColors = [
      "зелёно", "зелёно", "красно", "красно", "жёлто", "жёлто", "бело", "бело", "сине", "сине"];
    var listEnd = [
      "й", "го", "го", "го","го", "й","й", "й", "й", "го", "й", "й"];
    var listAnimal = [
      "крысы", "быка", "тигра", "кролика", "дракона", "змеи", "лошади", "козы", "обезьяны", "петуха", "собаки", "свиньи" ];
    var dates = [
      { month: "01",
        day: [
          {"21":
            ["1890", "1966"] },
          {"22":
            ["1879", "1898", "1909", "1947", "2004", "2023", "2042"] },
          {"23":
            ["1917", "1928", "1974", "1993", "2012", "2031"] },
          {"24":
            ["1887", "1936", "1955", "2001", "2039"] },
          {"25":
            ["1868", "1906", "1925", "1944", "1963", "1982", "2020"] },
          {"26":
            ["1876", "1895", "1914", "1933", "2009", "2028"] },
          {"27":
            ["1865", "1941", "1952", "1971", "1990"] },
          {"28":
            ["1884", "1922", "1960", "1979", "1998", "2017", "2036"] },
          {"29":
            ["1873", "1903", "1949", "1987", "2006", "2025"] },
          {"30":
            ["1881", "1892", "1911", "1930", "1968", "2044"] },
          {"31": 
            ["1870", "1889", "1900", "1938", "1957", "1976", "1995", "2014", "2033"] },
            ]
        },
        { month: "02",
          day: [
          {"1":
            ["1919", "2003", "2022", "2041"] },
          {"2":
            ["1878", "1897", "1908", "1927", "1946", "1965", "1984"] },
          {"3":
            ["1916", "1954", "1973", "2011", "2030"] },
          {"4":
            ["1886", "1905", "1935", "1992", "2038"] },
          {"5":
            ["1867", "1924", "1943", "1962", "1981", "2019"] },
          {"6":
            ["1875", "1894", "1913", "1932", "1951", "1970", "1989", "2027"] },
          {"7":
            ["1978", "1997", "2008"] },
          {"8":
            ["1864", "1883", "1902", "1921", "1940", "1959", "2016", "2035"] },
          {"9":
            ["1872", "1891", "1967", "1986", "2005"] },
          {"10":
            ["1880", "1899", "1910", "1929", "1948", "1994", "2013", "2024", "2043"] },
          {"11":
            ["1869", "1918", "1937", "1975", "2032"] },
          {"12":
            ["1888", "1956", "2021", "2040"] },
          {"13":
            ["1877", "1896", "1907", "1926", "1945", "1964", "1983", "2029"] },
          {"14":
            ["1915", "1934", "1953", "2010"] },
          {"15":
            ["1866", "1885", "1942", "1961", "1972", "1991", "2037"] },
          {"16":
            ["1904", "1923", "1980", "1999", "2018"] },
          {"17":
            ["1874", "1893", "1931", "1950", "1969", "1988", "2026"] },
          {"18":
            ["1863", "1882", "1912", "1958", "1977", "2007"] },
          {"19":
            ["1871", "1901", "1939", "1996", "2015", "2034"] },
          {"20":
            ["1920", "1985"] },
            ]
        }
    ];
 
   function srch(arr, dat) {
     var p = dat.split('-')[0];
       function run(a, z, b) {
         if(b.length === 6) return b;
           for(var i = 0; i < a.length; i++) {
             for(var j = 0; j < a[i].day.length; j++) {
               for(var o in a[i].day[j]) {
                 for(var r = 0; r < a[i].day[j][o].length; r++) {
                  if(a[i].day[j][o][r] == z) {
                    b.push(o, a[i].month, z);
                  return run(a, String(++p), b);
                }
              }
            }
          }
        }
      }
      return run(arr, p, []);
  }
 
function ChineseZodiac() {
  var result = srch(dates, this.value);
  var oneDataDay = parseInt(result[0]);
  var oneDataMonth = result[1];
  var oneDataYear = result[2];
  var endDataDay = parseInt(result[3]) - 1;
  var endDataMonth = result[4];
  var endDataYear = result[5];
 
  var oneData = oneDataDay + '.' + oneDataMonth + '.' + oneDataYear;
  var endData = endDataDay + '.' + endDataMonth + '.' + endDataYear;
  var cineseYear = oneData + '-' + endData;
 
  
  var currentDate = this.value ? new Date(this.value) : new Date();
  var currentYear = currentDate.getFullYear();
 
  var colorIndex = (currentYear - 1564) % 10;
  var color = listColors[colorIndex];
 
  var endIndex = (currentYear - 1564) % 12;
  var end = listEnd[endIndex];
 
  var animalIndex = (currentYear - 1564) % 12;
  var animal = listAnimal[animalIndex];
 
  var chineseNumYear = currentYear + 2697;
  var cycleNum = Math.floor(chineseNumYear / 60) + 1;
  var yearCycle = (chineseNumYear % 60 === 0 ? 6 : chineseNumYear % 60) + " год в 60-летнем цикле.";
 
  var infoElement = document.getElementById("info");
  infoElement.innerHTML = "год " + color + end + " " + animal + "." + "<br/>" + oneData + '-' + endData + "<br/>" + chineseNumYear + " г." + "<br/>" + cycleNum + " цикл" + "<br/>" + yearCycle;
}
 
 
    var input = document.getElementById('desiredDate');
 
    input.value = new Date().getFullYear() + '-' + ((new Date().getMonth() < 9) ? '0' : '') + (new Date().getMonth() + 1) + '-' + ((new Date().getDate() < 10) ? '0' : '') + new Date().getDate();
    input.addEventListener('change', ChineseZodiac);
    input.dispatchEvent(new Event('change'));
  </script>
 </body>
</html>
в этом скрипте получаем даты,

JavaScript
1
2
3
4
5
6
7
8
9
10
var result = srch(dates, this.value);
  var oneDataDay = parseInt(result[0]);
  var oneDataMonth = result[1];
  var oneDataYear = result[2];
  var endDataDay = parseInt(result[3]) - 1;
  var endDataMonth = result[4];
  var endDataYear = result[5];
 
  var oneData = oneDataDay + '.' + oneDataMonth + '.' + oneDataYear;
  var endData = endDataDay + '.' + endDataMonth + '.' + endDataYear;
как дальше получить даты национальных китайских праздников, +/- дней от этих дат?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2024, 19:22
Ответы с готовыми решениями:

Добавить 7 дней к текущей дате
надо Выведите на экран дату, которая будет через неделю после текущей. вот я сделал , но добавляется не к дням, а к месяцам var...

Как добавить к дате n дней?
У меня есть дата из datetimepicture, и допустим 5 дней, как мне добавить 5 дней к дате? Потому что если я сделаю var data =...

Как добавить 45 дней к дате приема?
У меня есть бд с полями &quot;ФИО&quot;,&quot;дата приема&quot;! Мне нужно чтобы к дате приема прибавлялось 45 дней и программа показывала дату выдачи и...

171
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
16.02.2024, 09:04
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от бел ка Посмотреть сообщение
тут наверное дело не в хроме, и не в версии, а просто интересно понять почему не работает get методы...

Не по теме:


желание изучить похвально, но
`Беда, коль пироги начнет печи сапожник,
А сапоги тачать пирожник`

1
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
16.02.2024, 15:24  [ТС]
voraa, anWrite знаешь такой редактор html для андроид...
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,389
16.02.2024, 15:46
Я тоже когда то кодил на планшете на даче. И вроде нормальный редактор был (какой - не помню). Проблем со скобками не было.
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
16.02.2024, 15:46  [ТС]
JavaScript
1
2
3
4
5
6
7
8
9
10
      function format() {
        var date = new Date();
        var day = date.getDate();
        var month = date.getMonth() + 1;
        var year = date.getFullYear();
    
        if (month < 10) {
        month = '0' + month;
        }
      }
нашла где не хватало скобки "}" но тогда в 206 строке выдаёт ошибку,
JavaScript
1
2
}
</script>
...
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,389
16.02.2024, 15:54
Ну значит какая то скобка лишняя.

Тут другое дело.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
     function format() {
        var date = new Date();
        var day = date.getDate();
        var month = date.getMonth() + 1;
        var year = date.getFullYear();
    
        if (month < 10) {
        month = '0' + month;
        }
      }
 
var formatteddate = day + '.' + month + '.' + year;
....
    document.getElementById('info').innerHTML = '<span class="' + class_0 + '">' + formattedDate.format(currentData) + 
    '-' + formattedDate.format(LastDayPreviousYear) + "</span>";
Вы не мне, а себе постарайтесь объяснить, что это значит.
Что делает и что возвращает эта функция?
Откуда берутся переменные day + '.' + month + '.' + year;
Что такое formattedDate.format(currentData)? Что есть formattedDate, какого типа?, и как у нее можно вызвать эту функцию? Да еще с параметром, хотя при объявлении функции никакого параметра нет
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
16.02.2024, 20:51  [ТС]
PHP/HTML
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
<!DOCTYPE HTML>
 <html lang="ru-RU">
 <head>
  <meta charset="UTF-8">
  <title>Chinese Zodiac</title>
  <style>
        
        #desiredDate {
            outline: none;
            background-color: hsl(120,100%,97%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,25%);
            border-radius: 15px/10px;
            font: bold 24px serif;
            padding: 5px 20px;
            margin-bottom: 20px;
            letter-spacing: 3px;
            font-family: "ITC Benguiat Std Medium Condensed";
            font-family: "ITC Benguiat Std Book Condensed";
            font-family: "OpticalBDB Normal";
            
        }
        #info {
            white-space: nowrap;
            background-color: hsl(120,100%,98%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,30%);
            border-radius: 15px/10px;
            font: bold 16px serif;
            padding: 10px 20px;
        }
        
        span.tree {
        color: hsl(120,100%,30%);
        } /* дерево */
        span.fire {
        color: hsl(345,100%,50%);
        } /* огонь */
        span.earth {
        color: hsl(51, 100%, 50%);
        } /* земля*/
        span.metallic {
        color: hsl(0, 0%, 75%);
        } /* металл*/
        span.water {
        color: hsl(215,100%,50%);
        } /* вода */
    </style>
</head>
<body>
 
  <input type="date" id="desiredDate" min="1564-01-01" max="2299-12-31"/>
  <br/>
  <div id="info"></div>
 
  <script>
    document.getElementById('desiredDate').valueAsDate = new Date();
 
    var listClass = ["tree", "fire", "earth", "metallic", "water"];
    
    var dates = [
          { month: "01",
            day: [
              {"21":
                ["1890", "1966"] },
              {"22":
                ["1879", "1898", "1909", "1947", "2004", "2023", "2042"] },
              {"23":
                ["1917", "1928", "1974", "1993", "2012", "2031"] },
              {"24":
                ["1887", "1925", "1936", "1955", "2001", "2039"] },
              {"25":
                ["1868", "1906", "1944", "1963", "1982", "2020"] },
              {"26":
                ["1876", "1895", "1914", "1933", "2009", "2028"] },
              {"27":
                ["1865", "1941", "1952", "1971", "1990"] },
              {"28":
                ["1884", "1922", "1960", "1979", "1998", "2017", "2036"] },
              {"29":
                ["1873", "1903", "1949", "1987", "2006", "2025"] },
              {"30":
                ["1881", "1892", "1911", "1930", "1968", "2044"] },
              {"31": 
                ["1870", "1889", "1900", "1938", "1957", "1976", "1995", "2014", "2033"] },
                ]
            },
            { month: "02",
              day: [
              {"1":
                ["1919", "2003", "2022", "2041"] },
              {"2":
                ["1878", "1897", "1908", "1927", "1946", "1965", "1984"] },
              {"3":
                ["1916", "1954", "1973", "2011", "2030"] },
              {"4":
                ["1886", "1905", "1935", "1992", "2038"] },
              {"5":
                ["1867", "1924", "1943", "1962", "1981", "2000", "2019"] },
              {"6":
                ["1875", "1894", "1913", "1932", "1951", "1970", "1989", "2027"] },
              {"7":
                ["1978", "1997", "2008"] },
              {"8":
                ["1864", "1883", "1902", "1921", "1940", "1959", "2016", "2035"] },
              {"9":
                ["1872", "1891", "1967", "1986", "2005"] },
              {"10":
                ["1880", "1899", "1910", "1929", "1948", "1994", "2013", "2024", "2043"] },
              {"11":
                ["1869", "1918", "1937", "1975", "2032"] },
              {"12":
                ["1888", "1956", "2002", "2021", "2040"] },
              {"13":
                ["1877", "1896", "1907", "1926", "1945", "1964", "1983", "2029"] },
              {"14":
                ["1915", "1934", "1953", "2010"] },
              {"15":
                ["1866", "1885", "1942", "1961", "1972", "1991", "2037"] },
              {"16":
                ["1904", "1923", "1980", "1999", "2018"] },
              {"17":
                ["1874", "1893", "1931", "1950", "1969", "1988", "2026"] },
              {"18":
                ["1863", "1882", "1912", "1958", "1977", "2007"] },
              {"19":
                ["1871", "1901", "1939", "1996", "2015", "2034"] },
              {"20":
                ["1920", "1985"] },
                ]
            }
        ];
 
    function srch(arr, dat) {
      var p = dat.split('-')[0];
        var cnt = [-1, 1], h = -1;
          function run(a, z, b) {
            if (b.length === 9) return b;
              for (var i = 0; i < a.length; i++) {
                for (var j = 0; j < a[i].day.length; j++) {
                  for (var o in a[i].day[j]) {
                    for (var r = 0; r < a[i].day[j][o].length; r++) {
                      if (a[i].day[j][o][r] == z) {
                      b.push(o, a[i].month, z);
                      return run(a, String(+p + cnt[++h]), b);
                    }
                  }
                }
              }
            }
          }
        return run(arr, p, []);
      }
 
    
    
    function showResult(e) {
    var result = srch(dates, this.value);
    
    var currentData = new Date(result[2], result[1] - 1, result[0]);
    var previousDate = new Date(result[5], result[4] - 1, result[3]);
    var followingDate = new Date(result[8], result[7] - 1, result[6]);
    
    var lastDayYear = new Date(currentData);
    lastDayYear.setDate(lastDayYear.getDate() - 1);
    
    var lastDayPreviousYear = new Date(followingDate);
    lastDayPreviousYear.setDate(lastDayPreviousYear.getDate() - 1);
    
    var formattedDate = formatNumber(currentData.getDate()) + '.' + formatNumber(currentData.getMonth() + 1) + '.' + currentData.getFullYear();
    
    var nowDate = new Date(this.value);
    
    var desiredYear = currentData.getFullYear();
    
    var listClassIndex = Math.floor((desiredYear - -0126) % 10 / 2);
    var class_0 = listClass[listClassIndex];
    
    var listClassIndex_1 = Math.floor((desiredYear - -0125) % 10 / 2);
    var class_1 = listClass[listClassIndex_1];
    
    if (currentData >= nowDate) {
    document.getElementById('info').innerHTML = '<span class="' + class_0 + '">' + formattedDate.format(currentData) + '-' + formattedDate.format(lastDayPreviousYear) + "</span>";
    } else {
    document.getElementById('info').innerHTML = '<span class="' + class_1 + '">' + formattedDate.format(previousDate) + '-' + formattedDate.format(lastDayYear) + "</span>" + "<br>" +
    '<span class="' + class_0 + '">' + formattedDate.format(currentData) + '-' + formattedDate.format(lastDayPreviousYear) + "</span>";
    }
    }
    
    function formatNumber(number) {
    return (number < 10 ? '0' : '') + number;
    }
    
    var input = document.getElementById('desiredDate');
    
    input.valueAsDate = new Date();
    input.addEventListener('change', showResult);
    input.dispatchEvent(new Event('change'));
    
  </script>
  <br><br>
  <span class="tree">дерево - зелёный</span><br>
  <span class="fire">огонь - красный</span><br>
  <span class="earth">земля - жёлтый</span><br>
  <span class="metallic">металл - белый</span><br>
  <span class="water">вода - синий, <span style="color: hsl(0,0%,0%);">чёрный</span></span><br>
 </body>
</html>
и так нифига не работает...
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,389
16.02.2024, 21:36
Еще раз.
JavaScript
1
var formattedDate = formatNumber(currentData.getDate()) + '.' + formatNumber(currentData.getMonth() + 1) + '.' + currentData.getFullYear();
Что будет formattedDate? Какого типа? Число, строка, объект?

JavaScript
1
formattedDate.format(currentData)
Что есть format? Функция? Какая? Где она определена?
Это выглядит, как вызов метода. У formattedDate есть такой метод?

Если вы учитесь программировать, то учитесь. Каждый раз написав какую то конструкцию, проговаривайте: эта конструкция делает то то и то то.
Ну и заглядывайте в учебник.

Если вам просто нужен код, наймите кого-нибудь и не мучайтесь.
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
17.02.2024, 00:16  [ТС]
voraa, как бы правильно сформулировать...

с одной стороны нужен просто код... но понимаю что просто дать тех.зад. и оплатить просто не смогу, из-за отсутствия карточки, и неумения пользоваться вебмани и тому подобное...

с второй стороны, интересно понять, что это за код, и что он делает...

с третьей стороны, пытаюсь дать себе тех.зад. и выполнить его, с целью повторить уже известное мне, и закрепить знания...

как то так...
0
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
17.02.2024, 00:43
Да никому ваши деньги не нужны, просто сформируйте нормальное ТЗ. Например пользователь выбрал дату, выдалось значение А1 / A2 / A3 в данный момент ничего никому непонятно.

Давайте разберём работу вашего кода
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
var nowDate = new Date(this.value);
// log: [ "nowDate: ", "2024-02-16", "Fri Feb 16 2024 03:00:00 GMT+0300 (Москва, стандартное время)" ]
console.log(["nowDate: ", this.value, nowDate.toString()]);
 
var result = srch(dates, this.value);
// log: [ "10", "02", "2024", "22", "01", "2023", "29", "01", "2025" ]
console.log("srch(dates, this.value): ", result);
 
var currentData = new Date(result[2], result[1] - 1, result[0]);
// log: [ "currentData: ", "object", Date Sat Feb 10 2024 00:00:00 GMT+0300 (Москва, стандартное время), "2024", 1, "10" ]
console.log(["currentData: ", typeof currentData, currentData, result[2], result[1] - 1, result[0]]);
 
var previousDate = new Date(result[5], result[4] - 1, result[3]);
// log: [ "previousDate: ", "object", Date Sun Jan 22 2023 00:00:00 GMT+0300 (Москва, стандартное время), "2023", 0, "22" ]
console.log(["previousDate: ", typeof previousDate, previousDate, result[5], result[4] - 1, result[3]]);
 
var followingDate = new Date(result[8], result[7] - 1, result[6]);
// log: [ "followingDate: ", "object", Date Wed Jan 29 2025 00:00:00 GMT+0300 (Москва, стандартное время), "2025", 0, "29" ]
console.log(["followingDate: ", typeof followingDate, followingDate, result[8], result[7] - 1, result[6]]);
 
var lastDayYear = new Date(currentData);
lastDayYear.setDate(lastDayYear.getDate() - 1);
// log:  [ "lastDayYear: ", "object", "Fri Feb 09 2024 00:00:00 GMT+0300 (Москва, стандартное время)" ]
console.log(["lastDayYear: ", typeof lastDayYear, lastDayYear.toString()]);
 
var lastDayPreviousYear = new Date(followingDate);
lastDayPreviousYear.setDate(lastDayPreviousYear.getDate() - 1);
// log: [ "lastDayPreviousYear: ", "object", "Tue Jan 28 2025 00:00:00 GMT+0300 (Москва, стандартное время)" ]
console.log(["lastDayPreviousYear: ", typeof lastDayPreviousYear, lastDayPreviousYear.toString()]);
 
var formattedDate = formatNumber(currentData.getDate()) + "." + formatNumber(currentData.getMonth() + 1) + "." + currentData.getFullYear();
// log: [ "formattedDate: ", "string", "10.02.2024" ]
console.log(["formattedDate: ", typeof formattedDate, formattedDate]);
 
var desiredYear = currentData.getFullYear();
// log: [ "desiredYear: ", "number", 2024 ]
console.log(["desiredYear: ", typeof desiredYear, desiredYear]);
 
var listClassIndex = Math.floor(((desiredYear - -0126) % 10) / 2);
var class_0 = listClass[listClassIndex];
// log:  [ "class_0: ", "string", "tree" ]
console.log(["class_0: ", typeof class_0, class_0]);
 
var listClassIndex_1 = Math.floor(((desiredYear - -0125) % 10) / 2);
var class_1 = listClass[listClassIndex_1];
// log: [ "class_1: ", "string", "water" ]
console.log(["class_1: ", typeof class_1, class_1]);
formattedDate имеет тип string а не object следовательно не имеет метода format таким образом, вы не можете вызывать несуществующий метод format и передать туда currentData, lastDayPreviousYear, previousDate, lastDayYear типа object

Полный отладочный код
Кликните здесь для просмотра всего текста

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
function showResult(e) {
    var nowDate = new Date(this.value);
    // log: [ "nowDate: ", "2024-02-16", "Fri Feb 16 2024 03:00:00 GMT+0300 (Москва, стандартное время)" ]
    console.log(["nowDate: ", this.value, nowDate.toString()]);
 
    var result = srch(dates, this.value);
    // log: [ "10", "02", "2024", "22", "01", "2023", "29", "01", "2025" ]
    console.log("srch(dates, this.value): ", result);
 
    var currentData = new Date(result[2], result[1] - 1, result[0]);
    // log: [ "currentData: ", "object", Date Sat Feb 10 2024 00:00:00 GMT+0300 (Москва, стандартное время), "2024", 1, "10" ]
    console.log(["currentData: ", typeof currentData, currentData, result[2], result[1] - 1, result[0]]);
 
    var previousDate = new Date(result[5], result[4] - 1, result[3]);
    // log: [ "previousDate: ", "object", Date Sun Jan 22 2023 00:00:00 GMT+0300 (Москва, стандартное время), "2023", 0, "22" ]
    console.log(["previousDate: ", typeof previousDate, previousDate, result[5], result[4] - 1, result[3]]);
 
    var followingDate = new Date(result[8], result[7] - 1, result[6]);
    // log: [ "followingDate: ", "object", Date Wed Jan 29 2025 00:00:00 GMT+0300 (Москва, стандартное время), "2025", 0, "29" ]
    console.log(["followingDate: ", typeof followingDate, followingDate, result[8], result[7] - 1, result[6]]);
 
    var lastDayYear = new Date(currentData);
    lastDayYear.setDate(lastDayYear.getDate() - 1);
    // log:  [ "lastDayYear: ", "object", "Fri Feb 09 2024 00:00:00 GMT+0300 (Москва, стандартное время)" ]
    console.log(["lastDayYear: ", typeof lastDayYear, lastDayYear.toString()]);
 
    var lastDayPreviousYear = new Date(followingDate);
    lastDayPreviousYear.setDate(lastDayPreviousYear.getDate() - 1);
    // log: [ "lastDayPreviousYear: ", "object", "Tue Jan 28 2025 00:00:00 GMT+0300 (Москва, стандартное время)" ]
    console.log(["lastDayPreviousYear: ", typeof lastDayPreviousYear, lastDayPreviousYear.toString()]);
 
    var formattedDate = formatNumber(currentData.getDate()) + "." + formatNumber(currentData.getMonth() + 1) + "." + currentData.getFullYear();
    // log: [ "formattedDate: ", "string", "10.02.2024" ]
    console.log(["formattedDate: ", typeof formattedDate, formattedDate]);
 
    var desiredYear = currentData.getFullYear();
    // log: [ "desiredYear: ", "number", 2024 ]
    console.log(["desiredYear: ", typeof desiredYear, desiredYear]);
 
    var listClassIndex = Math.floor(((desiredYear - -0126) % 10) / 2);
    var class_0 = listClass[listClassIndex];
    // log:  [ "class_0: ", "string", "tree" ]
    console.log(["class_0: ", typeof class_0, class_0]);
 
    var listClassIndex_1 = Math.floor(((desiredYear - -0125) % 10) / 2);
    var class_1 = listClass[listClassIndex_1];
    // log: [ "class_1: ", "string", "water" ]
    console.log(["class_1: ", typeof class_1, class_1]);
 
    /*
    var test = formattedDate.format(currentData);
    var test2 = formattedDate.format(lastDayPreviousYear);
    var test3 = formattedDate.format(previousDate);
    var test4 = formattedDate.format(lastDayYear);
 
    if (currentData >= nowDate) {
        document.getElementById("info").innerHTML = '<span class="' + class_0 + '">' + test + "-" + test2 + "</span>";
    } else {
        document.getElementById("info").innerHTML = '<span class="' + class_1 + '">' + test3 + "-" + test4 + "</span>" + "<br>" + '<span class="' + class_0 + '">' + test + "-" + test2 + "</span>";
    }
    */
}
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
17.02.2024, 01:47  [ТС]
Именч,
вот, это работает именно так, как требуется

PHP/HTML
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
<!DOCTYPE HTML>
 <html lang="ru-RU">
 <head>
  <meta charset="UTF-8">
  <title>Chinese Zodiac</title>
  <style>
        
        #desiredDate {
            outline: none;
            background-color: hsl(120,100%,97%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,25%);
            border-radius: 15px/10px;
            font: bold 24px serif;
            padding: 5px 20px;
            margin-bottom: 20px;
            letter-spacing: 3px;
            font-family: "ITC Benguiat Std Medium Condensed";
            font-family: "ITC Benguiat Std Book Condensed";
            font-family: "OpticalBDB Normal";
            
        }
        #info {
            white-space: nowrap;
            background-color: hsl(120,100%,98%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,30%);
            border-radius: 15px/10px;
            font: bold 16px serif;
            padding: 10px 20px;
        }
        
        span.tree {
        color: hsl(120,100%,30%);
        } /* дерево */
        span.fire {
        color: hsl(345,100%,50%);
        } /* огонь */
        span.earth {
        color: hsl(51, 100%, 50%);
        } /* земля*/
        span.metallic {
        color: hsl(0, 0%, 75%);
        } /* металл*/
        span.water {
        color: hsl(215,100%,50%);
        } /* вода */
    </style>
</head>
<body>
 
  <input type="date" id="desiredDate" min="1564-01-01" max="2299-12-31"/>
  <br/>
  <div id="info"></div>
 
  <script>
    document.getElementById('desiredDate').valueAsDate = new Date();
 
    var listClass = ["tree", "fire", "earth", "metallic", "water"];
    
    var dates = [
          { month: "01",
            day: [
              {"21":
                ["1890", "1966"] },
              {"22":
                ["1879", "1898", "1909", "1947", "2004", "2023", "2042"] },
              {"23":
                ["1917", "1928", "1974", "1993", "2012", "2031"] },
              {"24":
                ["1887", "1925", "1936", "1955", "2001", "2039"] },
              {"25":
                ["1868", "1906", "1944", "1963", "1982", "2020"] },
              {"26":
                ["1876", "1895", "1914", "1933", "2009", "2028"] },
              {"27":
                ["1865", "1941", "1952", "1971", "1990"] },
              {"28":
                ["1884", "1922", "1960", "1979", "1998", "2017", "2036"] },
              {"29":
                ["1873", "1903", "1949", "1987", "2006", "2025"] },
              {"30":
                ["1881", "1892", "1911", "1930", "1968", "2044"] },
              {"31": 
                ["1870", "1889", "1900", "1938", "1957", "1976", "1995", "2014", "2033"] },
                ]
            },
            { month: "02",
              day: [
              {"1":
                ["1919", "2003", "2022", "2041"] },
              {"2":
                ["1878", "1897", "1908", "1927", "1946", "1965", "1984"] },
              {"3":
                ["1916", "1954", "1973", "2011", "2030"] },
              {"4":
                ["1886", "1905", "1935", "1992", "2038"] },
              {"5":
                ["1867", "1924", "1943", "1962", "1981", "2000", "2019"] },
              {"6":
                ["1875", "1894", "1913", "1932", "1951", "1970", "1989", "2027"] },
              {"7":
                ["1978", "1997", "2008"] },
              {"8":
                ["1864", "1883", "1902", "1921", "1940", "1959", "2016", "2035"] },
              {"9":
                ["1872", "1891", "1967", "1986", "2005"] },
              {"10":
                ["1880", "1899", "1910", "1929", "1948", "1994", "2013", "2024", "2043"] },
              {"11":
                ["1869", "1918", "1937", "1975", "2032"] },
              {"12":
                ["1888", "1956", "2002", "2021", "2040"] },
              {"13":
                ["1877", "1896", "1907", "1926", "1945", "1964", "1983", "2029"] },
              {"14":
                ["1915", "1934", "1953", "2010"] },
              {"15":
                ["1866", "1885", "1942", "1961", "1972", "1991", "2037"] },
              {"16":
                ["1904", "1923", "1980", "1999", "2018"] },
              {"17":
                ["1874", "1893", "1931", "1950", "1969", "1988", "2026"] },
              {"18":
                ["1863", "1882", "1912", "1958", "1977", "2007"] },
              {"19":
                ["1871", "1901", "1939", "1996", "2015", "2034"] },
              {"20":
                ["1920", "1985"] },
                ]
            }
        ];
 
    function srch(arr, dat) {
      var p = dat.split('-')[0];
        var cnt = [-1, 1], h = -1;
          function run(a, z, b) {
            if (b.length === 9) return b;
              for (var i = 0; i < a.length; i++) {
                for (var j = 0; j < a[i].day.length; j++) {
                  for (var o in a[i].day[j]) {
                    for (var r = 0; r < a[i].day[j][o].length; r++) {
                      if (a[i].day[j][o][r] == z) {
                      b.push(o, a[i].month, z);
                      return run(a, String(+p + cnt[++h]), b);
                    }
                  }
                }
              }
            }
          }
        return run(arr, p, []);
      }
 
    function showResult(e) {  
      var result = srch(dates, this.value);
 
      var currentData = new Date(result[2], result[1]-1, result[0]);
      var previouseDate = new Date(result[5], result[4]-1, result[3]);
      var followingtDate = new Date(result[8], result[7]-1, result[6]);
 
      var LastDayYear = new Date(currentData);
      LastDayYear.setDate(LastDayYear.getDate() - 1);
 
      var LastDayPreviousYear = new Date(followingtDate);
      LastDayPreviousYear.setDate(LastDayPreviousYear.getDate() - 1);
 
      var dateFormater = new Intl.DateTimeFormat();
  
      var nowDate = new Date(this.value);
      
      var desiredYear = currentData.getFullYear();
      
      var listClassIndex = Math.floor((desiredYear - -0126) % 10 / 2 );
      var class_0 = listClass[listClassIndex];
      
      var listClassIndex_1 = Math.floor((desiredYear - -0125) % 10 / 2 );
      var class_1 = listClass[listClassIndex_1];
      
      if (currentData >= nowDate) {
        document.getElementById('info').innerHTML = '<span class="' + class_0 + '">' + dateFormater.format(currentData) + 
          '-' + dateFormater.format(LastDayPreviousYear) + "</span>";
      } else {
        document.getElementById('info').innerHTML = '<span class="' + class_1 + '">' +  dateFormater.format(previouseDate) + 
          '-' + dateFormater.format(LastDayYear) + "</span>" + "<br>" +
          '<span class="' + class_0 + '">' + dateFormater.format(currentData) + '-' + dateFormater.format(LastDayPreviousYear) + "</span>";
      }
    }
 
    var input = document.getElementById('desiredDate');
 
    input.valueAsDate = new Date()
    input.addEventListener('change', showResult);
    input.dispatchEvent(new Event('change'));
 
  </script>
  <br><br>
  <span class="tree">дерево - зелёный</span><br>
  <span class="fire">огонь - красный</span><br>
  <span class="earth">земля - жёлтый</span><br>
  <span class="metallic">металл - белый</span><br>
  <span class="water">вода - синий, <span style="color: hsl(0,0%,0%);">чёрный</span></span><br>
 </body>
</html>
просто не могу разобраться, как строку
JavaScript
1
var dateFormater = new Intl.DateTimeFormat();
заменить на что-то типа
JavaScript
1
   var formatted... = ...(... .getDate()) + '.' + ...(... .getMonth() + 1) + '.' + ... .getFullYear();
добавив ноль впереди только месяцу, а день оставить без 0, это если сказать простыми словами...

а так код полностью работает как надо...
0
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
17.02.2024, 04:47
Я вам в принципе ещё давным давно дал то, что вам нужно было. Вы просто не умеете слушать...

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function showResult(e) {
    var inputDate = new Date(this.value);
    var currentData = ChineseNewYear(inputDate);
    var previouseDate = ChineseNewYear(inputDate, -1);
    var followingtDate = ChineseNewYear(inputDate, +1);
 
    var currentDataPrint = currentData.datePrint;
    var previouseDatePrint = previouseDate.datePrint;
 
    var LastDayYear = currentData.datePrint2;
    var LastDayPreviousYear = followingtDate.datePrint2;
 
    var class_0 = currentData.class_0;
    var class_1 = currentData.class_1;
 
    var html = '<span class="' + class_0 + '">' + currentDataPrint + "-" + LastDayPreviousYear + "</span>";
    if (!(currentData.dateObject >= inputDate)) {
        html = '<span class="' + class_1 + '">' + previouseDatePrint + "-" + LastDayYear + "</span><br>" + html;
    }
    
    document.getElementById("info").innerHTML = html;
}
*Обновил код, рассортировал по функциям
Кликните здесь для просмотра всего текста
PHP/HTML
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<!DOCTYPE html>
<html lang="ru-RU">
    <head>
        <meta charset="UTF-8" />
        <title>Chinese Zodiac</title>
        <style>
            #desiredDate {
                outline: none;
                background-color: hsl(120, 100%, 97%);
                color: hsl(120, 100%, 25%);
                border: 1px solid hsl(120, 100%, 25%);
                border-radius: 15px/10px;
                font: bold 24px serif;
                padding: 5px 20px;
                margin-bottom: 20px;
                letter-spacing: 3px;
                font-family: "ITC Benguiat Std Medium Condensed";
                font-family: "ITC Benguiat Std Book Condensed";
                font-family: "OpticalBDB Normal";
            }
            #info {
                white-space: nowrap;
                background-color: hsl(120, 100%, 98%);
                color: hsl(120, 100%, 25%);
                border: 1px solid hsl(120, 100%, 30%);
                border-radius: 15px/10px;
                font: bold 16px serif;
                padding: 10px 20px;
            }
 
            span.tree {
                color: hsl(120, 100%, 30%);
            } /* дерево */
            span.fire {
                color: hsl(345, 100%, 50%);
            } /* огонь */
            span.earth {
                color: hsl(51, 100%, 50%);
            } /* земля*/
            span.metallic {
                color: hsl(0, 0%, 75%);
            } /* металл*/
            span.water {
                color: hsl(215, 100%, 50%);
            } /* вода */
        </style>
    </head>
    <body>
        <input type="date" id="desiredDate" min="1564-01-01" max="2299-12-31" />
        <br />
        <div id="info"></div>
 
        <script>
var d0 = [8,2], d1 = [28,1], d2 = [15,2], 
    d3 = [4,2], d4 = [25,1], d5 = [12,2], d6 = [1,2], 
    d7 = [22,1], d8 = [10,2], d9 = [29,1], d10 = [18,1], 
    d11 = [6,2], d12 = [26,1], d13 = [13,2], d14 = [3,2], 
    d15 = [23,1], d16 = [11,2], d17 = [31,1], d18 = [20,1], 
    d19 = [9,2], d20 = [30,1], d21 = [5,2], d22 = [14,2], 
    d23 = [19,1], d24 = [7,2], d25 = [27,1], d26 = [2,2], 
    d27 = [21,1], d28 = [24,1], d29 = [17,1], d30 = [16,1], 
    d31 = [15,1], d32 = [14,1], d33 = [13,1], d34 = [18,2], 
    d35 = [20,2], d36 = [16,2], d37 = [19,2], d38 = [17,2], 
    dates = {1000:d0,1001:d1,1002:d2,1003:d3,1004:d4,1005:d5,1006:d6,1007:d7,1008:d8,1009:d9,1010:d10,1011:d11,1012:d12,1013:d13,
             1014:d14,1015:d15,1016:d16,1017:d17,1018:d18,1019:d0,1020:d1,1021:d2,1022:d3,1023:d4,1024:d13,1025:d6,1026:d7,1027:d19,
             1028:d20,1029:d10,1030:d21,1031:d12,1032:d22,1033:d14,1034:d15,1035:d16,1036:d17,1037:d23,1038:d24,1039:d25,1040:d2,1041:d3,
             1042:d4,1043:d13,1044:d26,1045:d27,1046:d19,1047:d9,1048:d10,1049:d21,1050:d12,1051:d22,1052:d3,1053:d15,1054:d16,1055:d17,
             1056:d18,1057:d24,1058:d25,1059:d2,1060:d21,1061:d28,1062:d5,1063:d6,1064:d27,1065:d0,1066:d9,1067:d10,1068:d11,1069:d12,
             1070:d22,1071:d14,1072:d15,1073:d8,1074:d20,1075:d18,1076:d0,1077:d25,1078:d29,1079:d21,1080:d4,1081:d5,1082:d6,1083:d27,
             1084:d19,1085:d9,1086:d10,1087:d11,1088:d25,1089:d13,1090:d14,1091:d15,1092:d8,1093:d20,1094:d23,1095:d0,1096:d1,1097:d30,
             1098:d3,1099:d28,1100:d5,1101:d17,1102:d27,1103:d19,1104:d20,1105:d10,1106:d11,1107:d12,1108:d22,1109:d26,1110:d7,1111:d8,
             1112:d17,1113:d18,1114:d0,1115:d1,1116:d29,1117:d3,1118:d28,1119:d5,1120:d6,1121:d27,1122:d19,1123:d9,1124:d23,1125:d21,
             1126:d4,1127:d13,1128:d14,1129:d7,1130:d8,1131:d17,1132:d18,1133:d24,1134:d25,1135:d30,1136:d3,1137:d15,1138:d5,1139:d6,
             1140:d7,1141:d19,1142:d9,1143:d10,1144:d11,1145:d4,1146:d13,1147:d26,1148:d15,1149:d8,1150:d17,1151:d18,1152:d0,1153:d25,
             1154:d22,1155:d3,1156:d28,1157:d5,1158:d6,1159:d27,1160:d19,1161:d1,1162:d29,1163:d21,1164:d12,1165:d13,1166:d14,1167:d15,
             1168:d16,1169:d20,1170:d23,1171:d24,1172:d25,1173:d30,1174:d3,1175:d4,1176:d5,1177:d6,1178:d27,1179:d19,1180:d9,1181:d29,
             1182:d21,1183:d12,1184:d22,1185:d26,1186:d15,1187:d8,1188:d20,1189:d23,1190:d24,1191:d25,1192:d29,1193:d3,1194:d28,1195:d5,
             1196:d6,1197:d18,1198:d0,1199:d1,1200:d10,1201:d21,1202:d12,1203:d22,1204:d14,1205:d7,1206:d8,1207:d20,1208:d23,1209:d11,
             1210:d25,1211:d29,1212:d21,1213:d28,1214:d5,1215:d6,1216:d27,1217:d0,1218:d1,1219:d10,1220:d11,1221:d4,1222:d13,1223:d26,
             1224:d7,1225:d19,1226:d20,1227:d23,1228:d0,1229:d25,1230:d30,1231:d3,1232:d28,1233:d16,1234:d17,1235:d27,1236:d19,1237:d1,
             1238:d10,1239:d11,1240:d12,1241:d13,1242:d26,1243:d7,1244:d8,1245:d20,1246:d23,1247:d24,1248:d1,1249:d30,1250:d14,1251:d28,
             1252:d5,1253:d17,1254:d27,1255:d19,1256:d9,1257:d29,1258:d21,1259:d4,1260:d13,1261:d6,1262:d7,1263:d8,1264:d17,1265:d23,
             1266:d24,1267:d25,1268:d30,1269:d14,1270:d15,1271:d16,1272:d6,1273:d27,1274:d19,1275:d9,1276:d10,1277:d21,1278:d4,1279:d13,
             1280:d26,1281:d7,1282:d8,1283:d20,1284:d23,1285:d11,1286:d12,1287:d31,1288:d14,1289:d15,1290:d16,1291:d6,1292:d27,1293:d0,
             1294:d1,1295:d29,1296:d21,1297:d28,1298:d5,1299:d26,1300:d15,1301:d8,1302:d20,1303:d23,1304:d11,1305:d12,1306:d31,1307:d14,
             1308:d28,1309:d16,1310:d17,1311:d18,1312:d0,1313:d25,1314:d29,1315:d21,1316:d4,1317:d32,1318:d26,1319:d7,1320:d8,1321:d9,
             1322:d10,1323:d11,1324:d25,1325:d31,1326:d14,1327:d28,1328:d5,1329:d17,1330:d18,1331:d0,1332:d1,1333:d29,1334:d21,1335:d4,
             1336:d13,1337:d6,1338:d27,1339:d19,1340:d9,1341:d10,1342:d11,1343:d25,1344:d30,1345:d14,1346:d15,1347:d16,1348:d17,1349:d23,
             1350:d24,1351:d1,1352:d10,1353:d21,1354:d4,1355:d32,1356:d26,1357:d27,1358:d19,1359:d9,1360:d23,1361:d11,1362:d25,1363:d30,
             1364:d3,1365:d15,1366:d8,1367:d17,1368:d18,1369:d24,1370:d1,1371:d29,1372:d21,1373:d28,1374:d5,1375:d6,1376:d7,1377:d19,
             1378:d9,1379:d23,1380:d24,1381:d12,1382:d31,1383:d14,1384:d15,1385:d8,1386:d17,1387:d18,1388:d0,1389:d1,1390:d29,1391:d21,
             1392:d4,1393:d5,1394:d6,1395:d7,1396:d8,1397:d9,1398:d23,1399:d11,1400:d12,1401:d31,1402:d26,1403:d15,1404:d16,1405:d17,
             1406:d18,1407:d0,1408:d1,1409:d30,1410:d3,1411:d28,1412:d5,1413:d6,1414:d7,1415:d8,1416:d20,1417:d10,1418:d11,1419:d12,
             1420:d31,1421:d26,1422:d15,1423:d16,1424:d6,1425:d18,1426:d0,1427:d1,1428:d29,1429:d3,1430:d28,1431:d5,1432:d26,1433:d27,
             1434:d19,1435:d9,1436:d10,1437:d21,1438:d12,1439:d31,1440:d14,1441:d15,1442:d16,1443:d17,1444:d18,1445:d24,1446:d25,1447:d29,
             1448:d21,1449:d28,1450:d32,1451:d26,1452:d7,1453:d19,1454:d9,1455:d10,1456:d11,1457:d12,1458:d31,1459:d14,1460:d28,1461:d8,
             1462:d20,1463:d18,1464:d24,1465:d25,1466:d29,1467:d21,1468:d4,1469:d33,1470:d6,1471:d27,1472:d19,1473:d1,1474:d10,1475:d11,
             1476:d25,1477:d31,1478:d14,1479:d15,1480:d16,1481:d20,1482:d23,1483:d24,1484:d1,1485:d29,1486:d21,1487:d4,1488:d32,1489:d6,
             1490:d27,1491:d19,1492:d9,1493:d10,1494:d11,1495:d12,1496:d30,1497:d26,1498:d7,1499:d8,1500:d17,1501:d23,1502:d24,1503:d1,
             1504:d29,1505:d3,1506:d28,1507:d33,1508:d6,1509:d27,1510:d19,1511:d9,1512:d23,1513:d11,1514:d12,1515:d31,1516:d14,1517:d7,
             1518:d8,1519:d17,1520:d18,1521:d24,1522:d1,1523:d29,1524:d3,1525:d15,1526:d16,1527:d6,1528:d7,1529:d19,1530:d9,1531:d10,
             1532:d11,1533:d4,1534:d32,1535:d26,1536:d15,1537:d8,1538:d17,1539:d18,1540:d0,1541:d25,1542:d30,1543:d3,1544:d28,1545:d33,
             1546:d6,1547:d7,1548:d8,1549:d9,1550:d10,1551:d21,1552:d12,1553:d32,1554:d26,1555:d15,1556:d16,1557:d20,1558:d18,1559:d24,
             1560:d25,1561:d30,1562:d3,1563:d28,1564:d32,1565:d6,1566:d27,1567:d19,1568:d9,1569:d29,1570:d21,1571:d12,1572:d31,1573:d26,
             1574:d15,1575:d16,1576:d17,1577:d23,1578:d24,1579:d25,1580:d30,1581:d3,1582:d28,1583:d28,1584:d5,1585:d17,1586:d34,1587:d24,
             1588:d1,1589:d2,1590:d21,1591:d4,1592:d13,1593:d6,1594:d35,1595:d19,1596:d9,1597:d36,1598:d11,1599:d25,1600:d2,1601:d14,
             1602:d15,1603:d16,1604:d17,1605:d34,1606:d24,1607:d1,1608:d36,1609:d21,1610:d4,1611:d13,1612:d26,1613:d37,1614:d19,1615:d9,
             1616:d38,1617:d11,1618:d12,1619:d22,1620:d3,1621:d7,1622:d8,1623:d17,1624:d37,1625:d24,1626:d1,1627:d36,1628:d21,1629:d28,
             1630:d5,1631:d6,1632:d35,1633:d0,1634:d9,1635:d38,1636:d24,1637:d12,1638:d22,1639:d14,1640:d15,1641:d8,1642:d20,1643:d37,
             1644:d0,1645:d1,1646:d36,1647:d21,1648:d4,1649:d16,1650:d6,1651:d27,1652:d19,1653:d9,1654:d38,1655:d11,1656:d12,1657:d13,
             1658:d26,1659:d15,1660:d16,1661:d20,1662:d34,1663:d0,1664:d1,1665:d2,1666:d3,1667:d28,1668:d5,1669:d6,1670:d27,1671:d19,
             1672:d20,1673:d38,1674:d11,1675:d12,1676:d22,1677:d26,1678:d15,1679:d16,1680:d17,1681:d34,1682:d24,1683:d25,1684:d2,1685:d14,
             1686:d28,1687:d5,1688:d26,1689:d27,1690:d19,1691:d9,1692:d38,1693:d21,1694:d4,1695:d13,1696:d14,1697:d15,1698:d16,1699:d17,
             1700:d37,1701:d0,1702:d1,1703:d36,1704:d21,1705:d4,1706:d13,1707:d14,1708:d15,1709:d8,1710:d20,1711:d38,1712:d24,1713:d12,
             1714:d22,1715:d3,1716:d28,1717:d16,1718:d17,1719:d37,1720:d0,1721:d1,1722:d36,1723:d21,1724:d12,1725:d13,1726:d26,1727:d7,
             1728:d8,1729:d9,1730:d38,1731:d24,1732:d25,1733:d22,1734:d3,1735:d28,1736:d5,1737:d17,1738:d37,1739:d0,1740:d9,1741:d36,
             1742:d21,1743:d12,1744:d13,1745:d6,1746:d7,1747:d19,1748:d20,1749:d38,1750:d24,1751:d25,1752:d2,1753:d14,1754:d15,1755:d16,
             1756:d17,1757:d34,1758:d0,1759:d9,1760:d38,1761:d21,1762:d4,1763:d13,1764:d26,1765:d27,1766:d19,1767:d20,1768:d34,1769:d24,
             1770:d25,1771:d2,1772:d3,1773:d15,1774:d16,1775:d17,1776:d37,1777:d0,1778:d1,1779:d36,1780:d21,1781:d28,1782:d5,1783:d26,
             1784:d7,1785:d19,1786:d20,1787:d34,1788:d24,1789:d12,1790:d22,1791:d14,1792:d28,1793:d16,1794:d17,1795:d27,1796:d19,1797:d1,
             1798:d36,1799:d21,1800:d4,1801:d13,1802:d14,1803:d15,1804:d16,1805:d17,1806:d34,1807:d24,1808:d1,1809:d22,1810:d3,1811:d4,
             1812:d13,1813:d6,1814:d27,1815:d19,1816:d9,1817:d36,1818:d21,1819:d12,1820:d22,1821:d14,1822:d15,1823:d16,1824:d17,1825:d34,
             1826:d24,1827:d25,1828:d2,1829:d3,1830:d4,1831:d13,1832:d26,1833:d35,1834:d19,1835:d9,1836:d38,1837:d21,1838:d12,1839:d22,
             1840:d14,1841:d15,1842:d8,1843:d20,1844:d34,1845:d24,1846:d25,1847:d2,1848:d21,1849:d28,1850:d5,1851:d6,1852:d35,1853:d0,
             1854:d9,1855:d38,1856:d11,1857:d12,1858:d22,1859:d14,1860:d15,1861:d8,1862:d20,1863:d34,1864:d0,1865:d25,1866:d2,1867:d21,
             1868:d4,1869:d16,1870:d17,1871:d37,1872:d19,1873:d9,1874:d38,1875:d11,1876:d12,1877:d13,1878:d26,1879:d7,1880:d8,1881:d20,
             1882:d34,1883:d0,1884:d1,1885:d2,1886:d3,1887:d28,1888:d5,1889:d17,1890:d27,1891:d19,1892:d20,1893:d38,1894:d11,1895:d12,
             1896:d13,1897:d26,1898:d7,1899:d8,1900:d17,1901:d37,1902:d0,1903:d9,1904:d36,1905:d3,1906:d4,1907:d13,1908:d26,1909:d7,
             1910:d8,1911:d20,1912:d34,1913:d11,1914:d12,1915:d22,1916:d14,1917:d15,1918:d16,1919:d6,1920:d35,1921:d0,1922:d1,1923:d36,
             1924:d21,1925:d28,1926:d13,1927:d26,1928:d15,1929:d8,1930:d20,1931:d38,1932:d11,1933:d12,1934:d22,1935:d3,1936:d28,1937:d16,
             1938:d17,1939:d37,1940:d0,1941:d25,1942:d2,1943:d21,1944:d4,1945:d13,1946:d26,1947:d7,1948:d8,1949:d9,1950:d38,1951:d11,
             1952:d25,1953:d22,1954:d14,1955:d28,1956:d5,1957:d17,1958:d34,1959:d0,1960:d1,1961:d2,1962:d21,1963:d4,1964:d13,1965:d26,
             1966:d27,1967:d19,1968:d20,1969:d38,1970:d11,1971:d25,1972:d2,1973:d14,1974:d15,1975:d16,1976:d17,1977:d34,1978:d24,1979:d1,
             1980:d36,1981:d21,1982:d4,1983:d13,1984:d26,1985:d35,1986:d19,1987:d9,1988:d38,1989:d11,1990:d25,1991:d2,1992:d3,1993:d15,
             1994:d8,1995:d17,1996:d37,1997:d24,1998:d1,1999:d36,2000:d21,2001:d28,2002:d5,2003:d6,2004:d7,2005:d19,2006:d9,2007:d34,
             2008:d24,2009:d12,2010:d22,2011:d14,2012:d15,2013:d8,2014:d17,2015:d37,2016:d0,2017:d1,2018:d36,2019:d21,2020:d4,2021:d5,
             2022:d6,2023:d7,2024:d8,2025:d9,2026:d38,2027:d11,2028:d12,2029:d13,2030:d14,2031:d15,2032:d16,2033:d17,2034:d37,2035:d0,
             2036:d1,2037:d2,2038:d3,2039:d28,2040:d5,2041:d6,2042:d7,2043:d8,2044:d20,2045:d38,2046:d11,2047:d12,2048:d22,2049:d26,
             2050:d15,2051:d16,2052:d6,2053:d37,2054:d0,2055:d1,2056:d2,2057:d3,2058:d28,2059:d5,2060:d26,2061:d27,2062:d19,2063:d9,
             2064:d38,2065:d21,2066:d12,2067:d22,2068:d14,2069:d15,2070:d16,2071:d17,2072:d37,2073:d24,2074:d25,2075:d2,2076:d21,
             2077:d28,2078:d5,2079:d26,2080:d7,2081:d19,2082:d9,2083:d38,2084:d11,2085:d12,2086:d22,2087:d14,2088:d28,2089:d8,2090:d20,
             2091:d34,2092:d24,2093:d25,2094:d2,2095:d21,2096:d4,2097:d5,2098:d6,2099:d27,2100:d19,2101:d9,2102:d38,2103:d24,2104:d1,
             2105:d2,2106:d3,2107:d28,2108:d5,2109:d17,2110:d37,2111:d0,2112:d9,2113:d36,2114:d11,2115:d12,2116:d22,2117:d26,2118:d7,
             2119:d8,2120:d20,2121:d38,2122:d24,2123:d25,2124:d2,2125:d14,2126:d15,2127:d16,2128:d6,2129:d37,2130:d0,2131:d9,2132:d38,
             2133:d21,2134:d4,2135:d13,2136:d26,2137:d7,2138:d8,2139:d20,2140:d34,2141:d24,2142:d25,2143:d2,2144:d3,2145:d15,2146:d16,
             2147:d6,2148:d35,2149:d0,2150:d9,2151:d36,2152:d21,2153:d4,2154:d5,2155:d26,2156:d15,2157:d8,2158:d20,2159:d34,2160:d24,
             2161:d12,2162:d22,2163:d14,2164:d28,2165:d16,2166:d6,2167:d35,2168:d19,2169:d1,2170:d36,2171:d21,2172:d4,2173:d5,2174:d26,
             2175:d15,2176:d16,2177:d20,2178:d34,2179:d24,2180:d25,2181:d22,2182:d14,2183:d28,2184:d5,2185:d17,2186:d27,2187:d0,2188:d1,
             2189:d2,2190:d21,2191:d4,2192:d13,2193:d26,2194:d7,2195:d8,2196:d20,2197:d38,2198:d11,2199:d25,2200:d2};
  
 
            var listColors = ["зелёно", "зелёно", "красно", "красно", "жёлто", "жёлто", "бело", "бело", "сине", "сине"];
            var listEnd = ["й", "го", "го", "го", "го", "й", "й", "й", "й", "го", "й", "й"];
            var listAnimal = ["крысы", "быка", "тигра", "кролика", "дракона", "змеи", "лошади", "козы", "обезьяны", "петуха", "собаки", "свиньи"];
 
            var listClass = ["tree", "fire", "earth", "metallic", "water"];
 
            function formatNumber(number) {
                return (number < 10 ? "0" : "") + number;
            }
 
            function build_dmy(day, month, year) {
                return day + "." + formatNumber(month) + "." + year;
            }
 
            function printDate(currentDate) {
                var day = currentDate.getDate();
                var month = currentDate.getMonth() + 1;
                var year = currentDate.getFullYear();
                return build_dmy(day, month, year);
            }
            
            function getYear(year) {
                if ("string" == typeof year) {
                    year = parseInt(year.match(/\b\d{4}\b/));
                } else if (year instanceof Date) {
                    year = year.getFullYear();
                }
                return year;
            }
            
            function ChineseNewYearDMY(year, offset) {
                year = getYear(year);
 
                if (isNaN(year) || year < 1000 || year > 2200) year = new Date().getFullYear();
                offset = parseInt(offset);
                !isNaN(offset) && (year += offset);
 
                var infoYear = dates[year];
                return {
                    day: infoYear[0],
                    month: infoYear[1],
                    year: year
                };
            }
 
            function ChineseNewYear(year, offset) {
                var DMY = ChineseNewYearDMY(year, offset);
 
                var date = new Date(DMY.month + "/" + DMY.day + "/" + DMY.year);
                var date2 = new Date(date.getTime());
                date2.setDate(date2.getDate() - 1);
 
                var year1564 = DMY.year - 1564;
                var chineseNumYear = DMY.year + 2697;
 
                return {
                    datePrint: printDate(date),
                    datePrint2: printDate(date2),
 
                    dateObject: date,
                    date2Object: date2,
 
                    class_0: listClass[Math.floor(((DMY.year - -0126) % 10) / 2)],
                    class_1: listClass[Math.floor(((DMY.year - -0125) % 10) / 2)],
                    color: listColors[year1564 % listColors.length],
                    end: listEnd[year1564 % listEnd.length],
                    animal: listAnimal[year1564 % listAnimal.length],
                    chineseNumYear: chineseNumYear,
                    cycleNum: Math.floor(chineseNumYear / 60) + 1,
                    yearCycle: (chineseNumYear % 60 === 0 ? 6 : chineseNumYear % 60) + " год в 60-летнем цикле.",
                };
            }
 
            function showResult(e) {
                var inputDate = new Date(this.value);
                var currentData = ChineseNewYear(inputDate);
                var previouseDate = ChineseNewYear(inputDate, -1);
                var followingtDate = ChineseNewYear(inputDate, +1);
 
                var currentDataPrint = currentData.datePrint;
                var previouseDatePrint = previouseDate.datePrint;
 
                var LastDayYear = currentData.datePrint2;
                var LastDayPreviousYear = followingtDate.datePrint2;
 
                var class_0 = currentData.class_0;
                var class_1 = currentData.class_1;
 
                var html = '<span class="' + class_0 + '">' + currentDataPrint + "-" + LastDayPreviousYear + "</span>";
                if (!(currentData.dateObject >= inputDate)) {
                    html = '<span class="' + class_1 + '">' + previouseDatePrint + "-" + LastDayYear + "</span><br>" + html;
                }
                
                document.getElementById("info").innerHTML = html;
            }
 
            var input = document.getElementById("desiredDate");
 
            input.valueAsDate = new Date();
            input.addEventListener("change", showResult);
            input.dispatchEvent(new Event("change"));
        </script>
        <br />
        <br />
        <span class="tree">дерево - зелёный</span><br />
        <span class="fire">огонь - красный</span><br />
        <span class="earth">земля - жёлтый</span><br />
        <span class="metallic">металл - белый</span><br />
        <span class="water">вода - синий, <span style="color: hsl(0, 0%, 0%);">чёрный</span></span><br />
    </body>
</html>


Добавлено через 4 минуты
JavaScript
1
console.log({currentData:currentData, previouseDate:previouseDate, followingtDate:followingtDate});
Кликните здесь для просмотра всего текста
currentData: Object { datePrint: "10.02.2024", datePrint2: "9.02.2024", class_0: "tree", … }
animal: "дракона"
chineseNumYear: 4721
class_0: "tree"
class_1: "water"
color: "зелёно"
cycleNum: 79
date2Object: Date Fri Feb 09 2024 00:00:00 GMT+0300 (Москва, стандартное время)
dateObject: Date Sat Feb 10 2024 00:00:00 GMT+0300 (Москва, стандартное время)
datePrint: "10.02.2024"
datePrint2: "9.02.2024"
end: "го"
yearCycle: "41 год в 60-летнем цикле."

followingtDate: Object { datePrint: "29.01.2025", datePrint2: "28.01.2025", class_0: "tree", … }
animal: "змеи"
chineseNumYear: 4722
class_0: "tree"
class_1: "tree"
color: "зелёно"
cycleNum: 79
date2Object: Date Tue Jan 28 2025 00:00:00 GMT+0300 (Москва, стандартное время)
dateObject: Date Wed Jan 29 2025 00:00:00 GMT+0300 (Москва, стандартное время)
datePrint: "29.01.2025"
datePrint2: "28.01.2025"
end: "й"
yearCycle: "42 год в 60-летнем цикле."

previouseDate: Object { datePrint: "22.01.2023", datePrint2: "21.01.2023", class_0: "water", … }
animal: "кролика"
chineseNumYear: 4720
class_0: "water"
class_1: "water"
color: "сине"
cycleNum: 79
date2Object: Date Sat Jan 21 2023 00:00:00 GMT+0300 (Москва, стандартное время)
dateObject: Date Sun Jan 22 2023 00:00:00 GMT+0300 (Москва, стандартное время)
datePrint: "22.01.2023"
datePrint2: "21.01.2023"
end: "го"
yearCycle: "40 год в 60-летнем цикле."
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,389
17.02.2024, 09:23
Цитата Сообщение от бел ка Посмотреть сообщение
просто не могу разобраться, как строку
JavascriptВыделить код
var dateFormater = new Intl.DateTimeFormat();
заменить на что-то типа
С трудом верится, что это где то не работает.


JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
     function dateFormat() {
        var date = new Date();
        var day = date.getDate();
        var month = date.getMonth() + 1;
        var year = date.getFullYear();
    
        if (month < 10) {
        month = '0' + month;
        }
        return day + '.' + month + '.' + year;
      }
 
 
      if (currentData >= nowDate) {
        document.getElementById('info').innerHTML = '<span class="' + class_0 + '">' + dateFormat(currentData) + 
          '-' + dateFormat(LastDayPreviousYear) + "</span>";
      } else {
        document.getElementById('info').innerHTML = '<span class="' + class_1 + '">' +  dateFormat(previouseDate) + 
          '-' + dateFormat(LastDayYear) + "</span>" + "<br>" +
          '<span class="' + class_0 + '">' + dateFormat(currentData) + '-' + dateFormat(LastDayPreviousYear) + "</span>";
      }
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
22.02.2024, 06:04  [ТС]
...

PHP/HTML
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<!DOCTYPE HTML>
 <html lang="ru">
 <head>
  <meta charset="UTF-8">
  <title>Chinese Zodiac</title>
  <style>
        
        #desiredDate {
            outline: none;
            background-color: hsl(120,100%,97%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,25%);
            border-radius: 15px/10px;
            font: bold 24px serif;
            padding: 5px 20px;
            margin-bottom: 20px;
            letter-spacing: 3px;
        }
        #info {
            white-space: nowrap;
            background-color: hsl(120,100%,98%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,30%);
            border-radius: 15px/10px;
            font: bold 16px serif;
            padding: 10px 20px;
        }
        
        span.tree {
        color: hsl(120,100%,30%);
        } /* дерево */
        span.fire {
        color: hsl(345,100%,50%);
        } /* огонь */
        span.earth {
        color: hsl(51, 100%, 50%);
        } /* земля*/
        span.metallic {
        color: hsl(0, 0%, 75%);
        } /* металл*/
        span.water {
        color: hsl(215,100%,50%);
        } /* вода */
    </style>
</head>
<body>
 
    <input id="desiredDate" type="date" value="">
 
    <div id="info"></div>
 
    <script>
        document.getElementById('desiredDate').valueAsDate = new Date();
 
        var listClass = ["tree", "fire", "earth", "metallic", "water"];
 
        var dates = [
        {
            month: "01",
            day: [
                {"21": ["1890", "1966"] },
                {"22": ["1879", "1898", "1909", "1947", "2004", "2023", "2042"] },
                {"23": ["1917", "1928", "1974", "1993", "2012", "2031"] },
                {"24": ["1887", "1925", "1936", "1955", "2001", "2039"] },
                {"25": ["1868", "1906", "1944", "1963", "1982", "2020"] },
                {"26": ["1876", "1895", "1914", "1933", "2009", "2028"] },
                {"27": ["1865", "1941", "1952", "1971", "1990"] },
                {"28": ["1884", "1922", "1960", "1979", "1998", "2017", "2036"] },
                {"29": ["1873", "1903", "1949", "1987", "2006", "2025"] },
                {"30": ["1881", "1892", "1911", "1930", "1968", "2044"] },
                {"31": ["1870", "1889", "1900", "1938", "1957", "1976", "1995", "2014", "2033"] },
            ]
        },
        {
            month: "02",
            day: [
                {"1": ["1919", "2003", "2022", "2041"] },
                {"2": ["1878", "1897", "1908", "1927", "1946", "1965", "1984"] },
                {"3": ["1916", "1954", "1973", "2011", "2030"] },
                {"4": ["1886", "1905", "1935", "1992", "2038"] },
                {"5": ["1867", "1924", "1943", "1962", "1981", "2000", "2019"] },
                {"6": ["1875", "1894", "1913", "1932", "1951", "1970", "1989", "2027"] },
                {"7": ["1978", "1997", "2008"] },
                {"8": ["1864", "1883", "1902", "1921", "1940", "1959", "2016", "2035"] },
                {"9": ["1872", "1891", "1967", "1986", "2005"] },
                {"10": ["1880", "1899", "1910", "1929", "1948", "1994", "2013", "2024", "2043"] },
                {"11": ["1869", "1918", "1937", "1975", "2032"] },
                {"12": ["1888", "1956", "2002", "2021", "2040"] },
                {"13": ["1877", "1896", "1907", "1926", "1945", "1964", "1983", "2029"] },
                {"14": ["1915", "1934", "1953", "2010"] },
                {"15": ["1866", "1885", "1942", "1961", "1972", "1991", "2037"] },
                {"16": ["1904", "1923", "1980", "1999", "2018"] },
                {"17": ["1874", "1893", "1931", "1950", "1969", "1988", "2026"] },
                {"18": ["1863", "1882", "1912", "1958", "1977", "2007"] },
                {"19": ["1871", "1901", "1939", "1996", "2015", "2034"] },
                {"20": ["1920", "1985"] },
            ]
        }
    ];
 
        function search(arr, dat) {
            var p = dat.split('-')[0];
            var cnt = [-1, 1], h = -1;
            
            function run(a, z, b) {
                if (b.length === 9) return b;
                for (var i = 0; i < a.length; i++) {
                    for (var j = 0; j < a[i].day.length; j++) {
                        for (var o in a[i].day[j]) {
                            for (var r = 0; r < a[i].day[j][o].length; r++) {
                                if (a[i].day[j][o][r] == z) {
                                    b.push(o, a[i].month, z);
                                    return run(a, String(+p + cnt[++h]), b);
                                }
                            }
                        }
                    }
                }
            }
            
            return run(arr, p, []);
        }
 
        function showResult(e) {
            var result = search(dates, this.value);
        
            var currentData = new Date(result[2], result[1]-1, result[0]);
            var previousDate = new Date(result[5], result[4]-1, result[3]);
            var followingDate = new Date(result[8], result[7]-1, result[6]);
        
            var lastDayYear = new Date(currentData);
            lastDayYear.setDate(lastDayYear.getDate() - 1);
        
            var lastDayPreviousYear = new Date(followingDate);
            lastDayPreviousYear.setDate(lastDayPreviousYear.getDate() - 1);
        
            function formatDate() {
                var date = new Date();
                var day = date.getDate();
                var month = date.getMonth() + 1;
                var year = date.getFullYear();
        
                if (month < 10) {
                    month = "0" + month;
                }
        
                var formattedDate = day + "." + month + "." + year;
        
                return formattedDate;
            }
        
            var dateFormatter = formatDate();
        
            var nowDate = new Date(this.value);
        
            var desiredYear = currentData.getFullYear();
        
            var listClassIndex = Math.floor((desiredYear - 126) % 10 / 2 );
            var class_0 = listClass[listClassIndex];
        
            var listClassIndex_1 = Math.floor((desiredYear - 125) % 10 / 2 );
            var class_1 = listClass[listClassIndex_1];
        
            if (currentData >= nowDate) {
                document.getElementById('info').innerHTML = '<span class="' + class_0 + '">' + dateFormatter.format(currentData) + '-' + dateFormatter.format(lastDayPreviousYear) + "</span>";
            } else {
                document.getElementById('info').innerHTML = '<span class="' + class_1 + '">' + dateFormatter.format(previousDate) + '-' + dateFormatter.format(lastDayYear) + "</span><br>" +
                                                             '<span class="' + class_0 + '">' + dateFormatter.format(currentData) + '-' + dateFormatter.format(lastDayPreviousYear) + "</span>";
            }
        }
        
        var input = document.getElementById('desiredDate');
        
        input.valueAsDate = new Date();
        input.addEventListener('change', showResult);
        input.dispatchEvent(new Event('change'));
    </script>
</body>
</html>
Добавлено через 7 минут
PHP/HTML
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<!DOCTYPE HTML>
 <html lang="ru-RU">
 <head>
  <meta charset="UTF-8">
  <title>Chinese Zodiac</title>
  <style>
        
        #desiredDate {
            outline: none;
            background-color: hsl(120,100%,97%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,25%);
            border-radius: 15px/10px;
            font: bold 24px serif;
            padding: 5px 20px;
            margin-bottom: 20px;
            letter-spacing: 3px;
            font-family: "ITC Benguiat Std Medium Condensed";
            font-family: "ITC Benguiat Std Book Condensed";
            font-family: "OpticalBDB Normal";
            
        }
        #info {
            white-space: nowrap;
            background-color: hsl(120,100%,98%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,30%);
            border-radius: 15px/10px;
            font: bold 16px serif;
            padding: 10px 20px;
        }
        
        span.tree {
        color: hsl(120,100%,30%);
        } /* дерево */
        span.fire {
        color: hsl(345,100%,50%);
        } /* огонь */
        span.earth {
        color: hsl(51, 100%, 50%);
        } /* земля*/
        span.metallic {
        color: hsl(0, 0%, 75%);
        } /* металл*/
        span.water {
        color: hsl(215,100%,50%);
        } /* вода */
    </style>
</head>
<body>
 
  <input type="date" id="desiredDate" min="1564-01-01" max="2299-12-31"/>
  <br/>
  <div id="info"></div>
 
  <script>
    document.getElementById('desiredDate').valueAsDate = new Date();
 
    var listClass = ["tree", "fire", "earth", "metallic", "water"];
    
    var dates = [
          { month: "01",
            day: [
              {"21":
                ["1890", "1966"] },
              {"22":
                ["1879", "1898", "1909", "1947", "2004", "2023", "2042"] },
              {"23":
                ["1917", "1928", "1974", "1993", "2012", "2031"] },
              {"24":
                ["1887", "1925", "1936", "1955", "2001", "2039"] },
              {"25":
                ["1868", "1906", "1944", "1963", "1982", "2020"] },
              {"26":
                ["1876", "1895", "1914", "1933", "2009", "2028"] },
              {"27":
                ["1865", "1941", "1952", "1971", "1990"] },
              {"28":
                ["1884", "1922", "1960", "1979", "1998", "2017", "2036"] },
              {"29":
                ["1873", "1903", "1949", "1987", "2006", "2025"] },
              {"30":
                ["1881", "1892", "1911", "1930", "1968", "2044"] },
              {"31": 
                ["1870", "1889", "1900", "1938", "1957", "1976", "1995", "2014", "2033"] },
                ]
            },
            { month: "02",
              day: [
              {"1":
                ["1919", "2003", "2022", "2041"] },
              {"2":
                ["1878", "1897", "1908", "1927", "1946", "1965", "1984"] },
              {"3":
                ["1916", "1954", "1973", "2011", "2030"] },
              {"4":
                ["1886", "1905", "1935", "1992", "2038"] },
              {"5":
                ["1867", "1924", "1943", "1962", "1981", "2000", "2019"] },
              {"6":
                ["1875", "1894", "1913", "1932", "1951", "1970", "1989", "2027"] },
              {"7":
                ["1978", "1997", "2008"] },
              {"8":
                ["1864", "1883", "1902", "1921", "1940", "1959", "2016", "2035"] },
              {"9":
                ["1872", "1891", "1967", "1986", "2005"] },
              {"10":
                ["1880", "1899", "1910", "1929", "1948", "1994", "2013", "2024", "2043"] },
              {"11":
                ["1869", "1918", "1937", "1975", "2032"] },
              {"12":
                ["1888", "1956", "2002", "2021", "2040"] },
              {"13":
                ["1877", "1896", "1907", "1926", "1945", "1964", "1983", "2029"] },
              {"14":
                ["1915", "1934", "1953", "2010"] },
              {"15":
                ["1866", "1885", "1942", "1961", "1972", "1991", "2037"] },
              {"16":
                ["1904", "1923", "1980", "1999", "2018"] },
              {"17":
                ["1874", "1893", "1931", "1950", "1969", "1988", "2026"] },
              {"18":
                ["1863", "1882", "1912", "1958", "1977", "2007"] },
              {"19":
                ["1871", "1901", "1939", "1996", "2015", "2034"] },
              {"20":
                ["1920", "1985"] },
                ]
            }
        ];
 
    function srch(arr, dat) {
      var p = dat.split('-')[0];
        var cnt = [-1, 1], h = -1;
          function run(a, z, b) {
            if (b.length === 9) return b;
              for (var i = 0; i < a.length; i++) {
                for (var j = 0; j < a[i].day.length; j++) {
                  for (var o in a[i].day[j]) {
                    for (var r = 0; r < a[i].day[j][o].length; r++) {
                      if (a[i].day[j][o][r] == z) {
                      b.push(o, a[i].month, z);
                      return run(a, String(+p + cnt[++h]), b);
                    }
                  }
                }
              }
            }
          }
        return run(arr, p, []);
      }
 
    function showResult(e) {  
      var result = srch(dates, this.value);
 
      var currentData = new Date(result[2], result[1]-1, result[0]);
      var previouseDate = new Date(result[5], result[4]-1, result[3]);
      var followingtDate = new Date(result[8], result[7]-1, result[6]);
 
      var LastDayYear = new Date(currentData);
      LastDayYear.setDate(LastDayYear.getDate() - 1);
 
      var LastDayPreviousYear = new Date(followingtDate);
      LastDayPreviousYear.setDate(LastDayPreviousYear.getDate() - 1);
 
      var dateFormater = new function dateFormat() {
      var date = new Date();
      var day = date.getDate();
      var month = date.getMonth() + 1;
      var year = date.getFullYear();
 
      var nowDate = new Date(this.value);
      
      var desiredYear = currentData.getFullYear();
      
      var listClassIndex = Math.floor((desiredYear - -0126) % 10 / 2 );
      var class_0 = listClass[listClassIndex];
      
      var listClassIndex_1 = Math.floor((desiredYear - -0125) % 10 / 2 );
      var class_1 = listClass[listClassIndex_1];
      
      
      if (month < 10) {
      month = '0' + month;
      }
      return day + '.' + month + '.' + year;
      }
      
      
      if (currentData >= nowDate) {
      document.getElementById('info').innerHTML = '<span class="' + class_0 + '">' + dateFormat(currentData) + 
      '-' + dateFormat(LastDayPreviousYear) + "</span>";
      } else {
      document.getElementById('info').innerHTML = '<span class="' + class_1 + '">' +  dateFormat(previouseDate) + 
      '-' + dateFormat(LastDayYear) + "</span>" + "<br>" +
      '<span class="' + class_0 + '">' + dateFormat(currentData) + '-' + dateFormat(LastDayPreviousYear) + "</span>";
      }
      }
 
    var input = document.getElementById('desiredDate');
 
    input.valueAsDate = new Date()
    input.addEventListener('change', showResult);
    input.dispatchEvent(new Event('change'));
 
  </script>
  <br><br>
  <span class="tree">дерево - зелёный</span><br>
  <span class="fire">огонь - красный</span><br>
  <span class="earth">земля - жёлтый</span><br>
  <span class="metallic">металл - белый</span><br>
  <span class="water">вода - синий, <span style="color: hsl(0,0%,0%);">чёрный</span></span><br>
 </body>
</html>
0
 Аватар для voraa
1249 / 1159 / 178
Регистрация: 21.01.2024
Сообщений: 5,389
22.02.2024, 08:35
За это время можно было js выучить, как родной.
Это, если, конечно, учить. Там всякие учебники читать, документацию....
PHP/HTML
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<!DOCTYPE HTML>
 <html lang="ru-RU">
 <head>
  <meta charset="UTF-8">
  <title>Chinese Zodiac</title>
  <style>
        
        #desiredDate {
            outline: none;
            background-color: hsl(120,100%,97%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,25%);
            border-radius: 15px/10px;
            font: bold 24px serif;
            padding: 5px 20px;
            margin-bottom: 20px;
            letter-spacing: 3px;
            font-family: "ITC Benguiat Std Medium Condensed";
            font-family: "ITC Benguiat Std Book Condensed";
            font-family: "OpticalBDB Normal";
            
        }
        #info {
            white-space: nowrap;
            background-color: hsl(120,100%,98%);
            color: hsl(120,100%,25%);
            border: 1px solid hsl(120,100%,30%);
            border-radius: 15px/10px;
            font: bold 16px serif;
            padding: 10px 20px;
        }
        
        span.tree {
        color: hsl(120,100%,30%);
        } /* дерево */
        span.fire {
        color: hsl(345,100%,50%);
        } /* огонь */
        span.earth {
        color: hsl(51, 100%, 50%);
        } /* земля*/
        span.metallic {
        color: hsl(0, 0%, 75%);
        } /* металл*/
        span.water {
        color: hsl(215,100%,50%);
        } /* вода */
    </style>
</head>
<body>
 
  <input type="date" id="desiredDate" min="1564-01-01" max="2299-12-31"/>
  <br/>
  <div id="info"></div>
  <br><br>
  <span class="tree">дерево - зелёный</span><br>
  <span class="fire">огонь - красный</span><br>
  <span class="earth">земля - жёлтый</span><br>
  <span class="metallic">металл - белый</span><br>
  <span class="water">вода - синий, <span style="color: hsl(0,0%,0%);">чёрный</span></span><br>
 
  <script>
    document.getElementById('desiredDate').valueAsDate = new Date();
 
    var listClass = ["tree", "fire", "earth", "metallic", "water"];
    
    var dates = [
          { month: "01",
            day: [
              {"21":
                ["1890", "1966"] },
              {"22":
                ["1879", "1898", "1909", "1947", "2004", "2023", "2042"] },
              {"23":
                ["1917", "1928", "1974", "1993", "2012", "2031"] },
              {"24":
                ["1887", "1925", "1936", "1955", "2001", "2039"] },
              {"25":
                ["1868", "1906", "1944", "1963", "1982", "2020"] },
              {"26":
                ["1876", "1895", "1914", "1933", "2009", "2028"] },
              {"27":
                ["1865", "1941", "1952", "1971", "1990"] },
              {"28":
                ["1884", "1922", "1960", "1979", "1998", "2017", "2036"] },
              {"29":
                ["1873", "1903", "1949", "1987", "2006", "2025"] },
              {"30":
                ["1881", "1892", "1911", "1930", "1968", "2044"] },
              {"31": 
                ["1870", "1889", "1900", "1938", "1957", "1976", "1995", "2014", "2033"] },
                ]
            },
            { month: "02",
              day: [
              {"1":
                ["1919", "2003", "2022", "2041"] },
              {"2":
                ["1878", "1897", "1908", "1927", "1946", "1965", "1984"] },
              {"3":
                ["1916", "1954", "1973", "2011", "2030"] },
              {"4":
                ["1886", "1905", "1935", "1992", "2038"] },
              {"5":
                ["1867", "1924", "1943", "1962", "1981", "2000", "2019"] },
              {"6":
                ["1875", "1894", "1913", "1932", "1951", "1970", "1989", "2027"] },
              {"7":
                ["1978", "1997", "2008"] },
              {"8":
                ["1864", "1883", "1902", "1921", "1940", "1959", "2016", "2035"] },
              {"9":
                ["1872", "1891", "1967", "1986", "2005"] },
              {"10":
                ["1880", "1899", "1910", "1929", "1948", "1994", "2013", "2024", "2043"] },
              {"11":
                ["1869", "1918", "1937", "1975", "2032"] },
              {"12":
                ["1888", "1956", "2002", "2021", "2040"] },
              {"13":
                ["1877", "1896", "1907", "1926", "1945", "1964", "1983", "2029"] },
              {"14":
                ["1915", "1934", "1953", "2010"] },
              {"15":
                ["1866", "1885", "1942", "1961", "1972", "1991", "2037"] },
              {"16":
                ["1904", "1923", "1980", "1999", "2018"] },
              {"17":
                ["1874", "1893", "1931", "1950", "1969", "1988", "2026"] },
              {"18":
                ["1863", "1882", "1912", "1958", "1977", "2007"] },
              {"19":
                ["1871", "1901", "1939", "1996", "2015", "2034"] },
              {"20":
                ["1920", "1985"] },
                ]
            }
        ];
 
    function srch(arr, dat) {
      var p = dat.split('-')[0];
        var cnt = [-1, 1], h = -1;
          function run(a, z, b) {
            if (b.length === 9) return b;
              for (var i = 0; i < a.length; i++) {
                for (var j = 0; j < a[i].day.length; j++) {
                  for (var o in a[i].day[j]) {
                    for (var r = 0; r < a[i].day[j][o].length; r++) {
                      if (a[i].day[j][o][r] == z) {
                      b.push(o, a[i].month, z);
                      return run(a, String(+p + cnt[++h]), b);
                    }
                  }
                }
              }
            }
          }
        return run(arr, p, []);
      }
      
     function dateFormat(date) {
        var day = date.getDate();
        var month = date.getMonth() + 1;
        var year = date.getFullYear();
    
        if (month < 10) {
        month = '0' + month;
        }
        return day + '.' + month + '.' + year;
     }
 
 
    function showResult(e) {  
    
        var d = new Date(this.value)
        if (Number.isNaN(d.valueOf())) return
        var dy = d.getFullYear();
        if ( dy < 1864 || dy > 2043) return;
        
      var result = srch(dates, this.value);
 
      var currentData = new Date(result[2], result[1]-1, result[0]);
      var previouseDate = new Date(result[5], result[4]-1, result[3]);
      var followingtDate = new Date(result[8], result[7]-1, result[6]);
 
      var LastDayYear = new Date(currentData);
      LastDayYear.setDate(LastDayYear.getDate() - 1);
 
      var LastDayPreviousYear = new Date(followingtDate);
      LastDayPreviousYear.setDate(LastDayPreviousYear.getDate() - 1);
      
 
      var nowDate = new Date(this.value);
      
      var desiredYear = currentData.getFullYear();
      
      var listClassIndex = Math.floor((desiredYear - -0126) % 10 / 2 );
      var class_0 = listClass[listClassIndex];
      
      var listClassIndex_1 = Math.floor((desiredYear - -0125) % 10 / 2 );
      var class_1 = listClass[listClassIndex_1];
      
      
      if (currentData >= nowDate) {
      document.getElementById('info').innerHTML = '<span class="' + class_0 + '">' + dateFormat(currentData) + 
      '-' + dateFormat(LastDayPreviousYear) + "</span>";
      } else {
      document.getElementById('info').innerHTML = '<span class="' + class_1 + '">' +  dateFormat(previouseDate) + 
      '-' + dateFormat(LastDayYear) + "</span>" + "<br>" +
      '<span class="' + class_0 + '">' + dateFormat(currentData) + '-' + dateFormat(LastDayPreviousYear) + "</span>";
      }
 }
    var input = document.getElementById('desiredDate');
 
    input.valueAsDate = new Date()
    input.addEventListener('change', showResult);
    input.dispatchEvent(new Event('change'));
 
  </script>
 </body>
</html>
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
05.03.2024, 18:35  [ТС]
есть такой массив дат
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
13.01
1469 1507 1545 
14.01
1317 1355 1450 1488 1534 1553 1564 
15.01
1287 1306 1325 1382 1401 1420 1439 1458 1477 1515 1572 
16.01
1097 1135 1173 1230 1249 1268 1344 1363 1409 1496 1542 1561 1580 
17.01
1078 1116 1162 1181 1192 1211 1257 1295 1314 1333 1371 1390 1428 1447 1466 1485 1504 1523 1569 
18.01
801 877 915 934 953 1010 1029 1048 1067 1086 1105 1143 1200 1219 1238 1276 1322 1341 1352 1417 1436 1455 1474 1493 1531 1550 
19.01
687 706 763 782 820 839 858 896 972 991 1037 1094 1124 1170 1189 1208 1227 1246 1265 1284 1303 1349 1360 1379 1398 1482 1501 1512 1577 
20.01
657 744 790 809 885 923 942 961 999 1018 1056 1075 1113 1132 1151 1197 1311 1330 1368 1387 1406 1425 1444 1463 1520 1539 1558 
21.01
467 486 505 524 543 562 581 600 619 638 676 695 714 733 752 771 817 828 847 866 904 950 969 980 1045 1064 1083 1102 1121 1159 1178 1216 1235 1254 1273 1292 1338 1357 1433 1471 1490 1509 1566 1651 1670 1689 1765 1795 1814 1890 1966 2061 2099 2186 
22.01
448 513 570 589 646 665 703 722 741 779 798 836 855 874 893 912 931 977 988 1007 1026 1110 1129 1140 1205 1224 1243 1262 1281 1319 1376 1395 1414 1452 1498 1517 1528 1547 1621 1727 1746 1784 1879 1898 1909 1947 2004 2023 2042 2080 2118 2137 2194 
23.01
456 475 494 532 551 608 627 684 730 749 760 825 863 882 901 939 958 996 1015 1034 1053 1072 1091 1137 1148 1167 1186 1270 1289 1300 1346 1365 1384 1403 1422 1441 1479 1525 1536 1555 1574 1602 1640 1659 1678 1697 1708 1754 1773 1803 1822 1841 1860 1917 1928 1974 1993 2012 2031 2050 2069 2126 2145 2156 2175 
24.01
-236 -198 -179 369 426 445 483 502 521 559 578 597 616 635 654 673 692 711 768 787 806 844 920 985 1061 1099 1118 1156 1194 1213 1232 1251 1297 1308 1327 1373 1411 1430 1449 1460 1506 1544 1563 1582 1583 1629 1667 1686 1716 1735 1781 1792 1849 1887 1925 1936 1955 2001 2039 2058 2077 2088 2107 2164 2183 
25.01
-217 141 217 255 274 293 312 331 350 388 407 464 529 540 586 605 662 681 738 757 814 833 852 871 890 909 947 966 1004 1023 1042 1080 1126 1145 1175 1221 1259 1278 1316 1335 1354 1392 1468 1487 1533 1591 1610 1648 1694 1705 1762 1800 1811 1830 1868 1906 1944 1963 1982 2020 2096 2134 2153 2172 2191 
26.01
-228 -209 -190 -171 -152 -133 -114 -87 -30 -11 46 65 103 122 160 179 198 236 282 301 358 377 415 434 453 472 491 510 548 567 624 643 700 719 746 765 776 795 879 898 917 928 974 993 1012 1031 1050 1069 1107 1164 1183 1202 1240 1286 1305 1381 1400 1419 1438 1457 1495 1514 1552 1571 1618 1637 1656 1675 1713 1724 1743 1789 1819 1838 1857 1876 1895 1914 1933 2009 2028 2047 2066 2085 2115 2161 
27.01
-182 -163 -106 -68 -49 8 27 84 111 130 149 187 206 225 244 263 320 339 385 396 442 461 518 537 575 594 613 632 651 670 689 727 784 803 822 841 860 925 936 955 1039 1058 1077 1088 1134 1153 1172 1191 1210 1229 1267 1313 1324 1343 1362 1446 1465 1476 1541 1560 1579 1599 1683 1732 1751 1770 1827 1846 1865 1941 1952 1971 1990 2074 2093 2123 2142 2180 2199 
28.01
-231 -220 -201 -144 -125 -98 -79 -60 -41 -22 -3 16 35 54 73 92 157 168 233 271 290 309 328 347 366 404 423 480 499 545 556 621 678 697 708 754 773 792 811 830 849 887 906 944 963 982 1001 1020 1096 1115 1161 1199 1218 1237 1248 1294 1332 1351 1370 1389 1408 1427 1473 1484 1503 1522 1588 1607 1626 1645 1664 1702 1721 1778 1797 1808 1884 1922 1960 1979 1998 2017 2036 2055 2104 2169 2188 
29.01
-193 -174 -155 -136 -117 -71 5 81 100 119 138 176 195 214 241 252 298 317 374 393 431 450 469 488 507 526 564 583 602 640 659 716 735 781 868 914 933 1009 1047 1066 1085 1123 1142 1180 1256 1275 1321 1340 1359 1378 1397 1435 1454 1492 1511 1530 1549 1568 1596 1615 1634 1653 1691 1729 1740 1759 1816 1835 1854 1873 1903 1949 1987 2006 2025 2063 2082 2101 2112 2131 2150 
30.01
-223 -212 -166 -147 -90 -52 -33 -14 24 43 62 89 146 165 222 260 279 336 355 401 412 477 534 553 610 629 648 667 686 705 743 762 800 819 838 857 876 895 941 952 971 990 1028 1074 1093 1104 1169 1188 1207 1226 1245 1283 1302 1416 1462 1481 1557 1642 1661 1672 1710 1748 1767 1786 1843 1862 1881 1892 1911 1930 1968 2044 2090 2120 2139 2158 2177 2196 
31.01
-234 -204 -185 -128 -109 -101 -82 -63 -25 -6 13 51 70 108 127 184 203 249 287 306 325 344 363 382 420 439 458 496 515 572 591 694 713 724 789 808 827 846 865 922 960 979 998 1017 1036 1055 1101 1112 1131 1150 1234 1253 1264 1310 1329 1348 1367 1386 1405 1443 1500 1519 1538 1576 1585 1604 1623 1680 1699 1718 1737 1756 1775 1794 1805 1824 1870 1889 1900 1938 1957 1976 1995 2014 2033 2071 2109 2185 
1.02
-215 -177 -158 -139 -120 -55 -44 21 32 97 116 135 154 173 192 211 230 257 268 314 333 390 409 447 466 485 504 523 542 561 580 599 618 637 656 675 721 732 751 770 854 873 884 903 949 987 1006 1025 1063 1082 1120 1139 1158 1177 1196 1215 1261 1272 1291 1337 1375 1394 1413 1424 1470 1489 1508 1527 1546 1565 1593 1631 1650 1669 1745 1813 1851 1919 2003 2022 2041 2052 2098 2128 2147 2166 
2.02
-226 -207 -196 -131 -93 -74 -36 -17 2 40 59 78 86 105 162 181 238 276 295 352 371 428 493 550 569 607 626 645 664 683 702 740 778 797 816 835 892 911 930 938 968 1044 1109 1147 1185 1223 1242 1280 1299 1318 1356 1402 1421 1432 1451 1497 1535 1554 1573 1612 1658 1677 1688 1726 1764 1783 1832 1878 1897 1908 1927 1946 1965 1984 2049 2060 2079 2117 2136 2155 2174 2193 
3.02
-188 -169 -150 -112 -85 -66 -47 -9 10 29 67 124 143 200 219 246 265 303 322 341 360 379 398 417 436 455 474 512 531 588 653 729 759 805 843 862 881 957 976 995 1014 1033 1071 1090 1128 1166 1204 1250 1269 1288 1307 1326 1345 1383 1440 1459 1478 1516 1601 1639 1685 1696 1707 1753 1791 1802 1821 1840 1859 1916 1954 1973 2011 2030 2068 2087 2125 2163 2182 
4.02
-237 -218 -199 -161 -142 -123 -39 -28 37 48 94 113 132 151 170 189 208 227 284 349 406 425 463 482 501 520 539 558 577 596 615 634 691 710 737 748 767 786 824 889 900 919 1003 1022 1041 1052 1098 1117 1136 1155 1174 1193 1231 1364 1410 1429 1505 1524 1543 1562 1581 1620 1666 1715 1734 1772 1810 1829 1886 1905 1935 1992 2038 2057 2106 2144 
5.02
-229 -191 -180 -115 -104 -96 -77 -58 -20 -1 18 56 75 121 197 254 273 292 311 330 368 387 444 509 566 585 623 642 661 672 718 756 775 794 813 851 870 908 927 946 965 984 1030 1049 1060 1079 1125 1163 1182 1201 1212 1258 1277 1296 1315 1334 1353 1372 1391 1437 1448 1467 1486 1551 1570 1590 1609 1628 1647 1693 1704 1723 1742 1761 1780 1799 1818 1837 1848 1867 1924 1943 1962 1981 2000 2019 2065 2076 2095 2133 2152 2171 2190 
6.02
-210 -172 -153 -134 -50 -31 26 45 102 140 159 178 216 235 262 281 319 338 357 395 414 433 452 471 490 528 547 604 669 680 699 745 783 802 821 832 878 897 916 935 954 973 1011 1068 1087 1106 1144 1209 1220 1239 1285 1304 1323 1342 1361 1399 1418 1456 1475 1494 1513 1532 1598 1617 1655 1674 1856 1875 1894 1913 1932 1951 1970 1989 2027 2046 2084 2114 2198 
7.02
-221 -202 -183 -145 -126 -107 -88 -69 -12 7 64 83 91 110 129 167 186 205 243 300 365 376 422 441 479 498 517 555 574 593 612 631 650 688 707 726 764 840 859 905 992 1038 1057 1133 1171 1190 1247 1266 1350 1369 1380 1445 1464 1483 1502 1521 1559 1578 1587 1606 1625 1636 1682 1712 1731 1750 1769 1788 1807 1826 1845 1978 1997 2008 2073 2092 2103 2122 2141 2160 2179 
8.02
-164 -99 -80 -61 -42 -23 -4 15 34 53 72 137 148 213 224 251 270 289 308 327 346 384 403 460 525 536 582 601 658 677 753 791 810 829 886 924 943 962 981 1000 1019 1065 1076 1095 1114 1152 1198 1217 1228 1293 1312 1331 1388 1407 1426 1540 1633 1644 1663 1701 1720 1739 1758 1777 1853 1864 1883 1902 1921 1940 1959 2016 2035 2054 2111 2130 2149 2187 
9.02
-232 -213 -194 -175 -156 -137 -118 -91 -34 -15 42 61 99 118 156 175 194 232 278 297 354 373 411 430 449 468 487 506 544 563 620 639 685 696 715 734 772 818 837 848 867 913 932 951 970 989 1027 1046 1084 1103 1122 1141 1160 1179 1225 1236 1255 1274 1339 1358 1377 1434 1453 1472 1491 1510 1529 1567 1595 1614 1652 1671 1690 1747 1766 1785 1796 1815 1834 1872 1891 1967 1986 2005 2062 2081 2100 2168 
10.02
-224 -186 -167 -110 -72 -53 4 23 80 107 126 145 183 202 221 240 259 316 335 381 392 438 457 514 533 571 590 609 647 666 704 723 742 761 799 856 875 894 978 997 1008 1073 1092 1111 1130 1149 1187 1206 1244 1263 1282 1301 1320 1366 1385 1396 1415 1461 1499 1518 1537 1548 1622 1641 1709 1728 1842 1861 1880 1899 1910 1929 1948 1994 2013 2024 2043 2089 2119 2138 2157 2195 
11.02
-235 -205 -148 -129 -102 -83 -64 -45 -26 -7 12 31 50 69 88 153 164 229 267 286 305 324 343 362 400 419 476 495 541 552 617 628 693 731 750 769 780 807 826 845 864 883 902 921 940 959 1016 1035 1054 1168 1233 1271 1290 1309 1347 1404 1423 1442 1480 1526 1556 1575 1603 1649 1660 1679 1698 1717 1755 1774 1793 1804 1823 1869 1918 1937 1975 2032 2051 2070 2127 2146 2165 2176 
12.02
-197 -178 -159 -140 -121 -94 -75 1 77 96 115 134 172 191 210 237 248 294 313 370 389 427 446 465 484 503 522 560 579 598 636 655 674 712 788 853 967 986 1005 1062 1081 1100 1119 1138 1157 1176 1195 1214 1252 1298 1328 1374 1393 1412 1431 1584 1630 1668 1687 1736 1782 1850 1888 1956 2002 2021 2040 2059 2078 2097 2108 2154 2173 2184
13.02
-227 -216 -170 -151 -56 -37 -18 20 39 58 85 142 161 218 256 275 332 351 397 408 473 530 549 587 606 625 663 682 701 720 739 758 777 815 834 872 891 910 929 937 948 1013 1024 1043 1089 1127 1146 1165 1222 1241 1260 1279 1336 1592 1611 1657 1695 1706 1725 1744 1763 1801 1812 1831 1877 1896 1907 1926 1945 1964 1983 2029 2135 2192
14.02
-208 -189 -132 -113 -86 -67 -29 -10 9 47 66 104 123 180 199 245 283 302 321 340 359 378 416 435 454 492 511 568 633 644 747 766 785 796 842 861 880 899 918 975 994 1032 1051 1070 1108 1154 1184 1203 1619 1638 1676 1714 1733 1790 1809 1820 1839 1858 1915 1934 1953 2010 2048 2067 2086 2116 2162 2181
15.02
-219 -200 -181 -162 -143 -124 -105 -59 -48 17 28 93 112 131 150 169 188 207 226 253 264 329 386 405 443 462 481 500 519 538 557 576 595 614 652 671 690 709 728 774 793 804 823 869 907 926 945 956 1002 1021 1040 1059 1589 1600 1665 1684 1752 1771 1828 1847 1866 1885 1942 1961 1972 1991 2037 2056 2075 2094 2105 2124 2143 2189 2200
16.02
-230 -211 -135 -97 -78 -40 -21 -2 36 55 74 101 158 177 234 272 291 310 348 367 424 489 546 565 603 622 641 660 679 698 717 736 755 831 850 888 964 983 1597 1608 1627 1646 1703 1722 1741 1779 1798 1817 1904 1923 1980 1999 2018 2113 2151 2170
17.02
-192 -173 -154 -116 -89 -70 -51 -13 6 25 63 82 120 139 196 215 242 261 299 318 337 356 375 394 413 432 451 470 508 527 584 649 812 1616 1635 1654 1673 1692 1711 1730 1749 1760 1836 1855 1874 1893 1931 1950 1969 1988 2026 2045 2064 2083 2102 2121 2132 2197
18.02
-222 -203 -165 -146 -127 -43 -32 33 44 90 109 128 147 166 185 204 223 280 345 402 421 459 478 497 516 535 554 573 592 611 630 668 725 1586 1605 1662 1681 1757 1768 1787 1806 1825 1844 1863 1882 1912 1958 1977 2007 2091 2140 2159 2178
19.02
-233 -195 -184 -119 -108 -100 -81 -62 -24 -5 14 52 71 117 193 250 269 288 307 326 364 383 440 1613 1624 1643 1700 1719 1738 1776 1871 1901 1939 1996 2015 2034 2053 2072 2110 2129
20.02
-214 -176 -157 -138 -54 -35 22 41 98 136 155 174 212 231 258 277 315 334 353 391 410 429 1594 1632 1833 1852 1920 1985 2148 2167
21.02
-225 -206 -187 -149 -130 -111 -92 -73 -16 3 60 79 87 106 125 163 182 201 239 296 361 372 418 437
22.02
-168 -103 -84 -65 -46 -27 -8 11 30 49 68 133 144 209 220 247 266 285 304 323 342 380 399
23.02
-160 -141 -122 -95 -38 -19 38 57 95 114 152 171 190 228
24.02
-76 -57 0 19 76
как найти и вывести даты на страницу год которых <1, если в инпут type="date" нельзя выбирать даты до н.э

Добавлено через 5 часов 3 минуты
суть вопроса, чем заменить <input type=""date"> чтобы можно было бы выбирать даты, год которых >1, тоесть даты до н.э.
0
Эксперт .NET
 Аватар для Usaga
14127 / 9347 / 1350
Регистрация: 21.01.2016
Сообщений: 35,125
06.03.2024, 07:11
Цитата Сообщение от бел ка Посмотреть сообщение
суть вопроса, чем заменить <input type=""date"> чтобы можно было бы выбирать даты, год которых >1, тоесть даты до н.э.
Видимо надо самописный контрол писать, раз стандартный чем-то не устраивает.
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
06.03.2024, 19:31  [ТС]
Usaga, сначала думала сделать "отрывной" календарь, чтобы заменить в шапке сайта, вывод даты и дня недели текстом, чтобы вместо текста была возможность навигации по датам, использую элементы формы
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<select id="weekday"></select>
   <button id="minusweek">-</button>
   <button id="plusweek">+</button>
   <br>
   <input id="desiredday" type="text" size="1">
   <button id="minusday">-</button>
   <button id="plusday">+</button>
   <br>
   <select id="desiredmonth"></select>
   <button id="minusmonth">-</button>
   <button id="plusmonth">+</button>
   <br>
   <input type="text" id="desiredyear" size="2">
   <button id="minusyear">-</button>
   <button id="plusyear">+</button>
   <br>
   <span id="elemera" style="display: none;">
       <select id="desiredera"></select><br>
       <button id="minusera">-</button>
       <button id="plusera">+</button>
   </span>
   <button id="today" style="display: none;">сегодня</button>
а потом эту форму добавить в этот скрипт, но моих знаний пока явно не хватает... и видимо я не могу нормально объяснить что надо, если даже GPT 3.5 в ступоре от моих объяснений...
Миниатюры
Как к дате добавить  "n" дней?  
0
Эксперт .NET
 Аватар для Usaga
14127 / 9347 / 1350
Регистрация: 21.01.2016
Сообщений: 35,125
07.03.2024, 05:27
бел ка, ну, тогда я не знаю чем тут можно помочь.

Ищи готовые реализации. Параллельно учи JavaScript. Или копи деньги на исполнителя. Тут я не берусь сказать, что будет быстрее.
0
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
08.03.2024, 05:46
Писать свой календарь, дёргая вызовы date Имхо гиблая затея. Надеюсь объяснять не надо?
0
-11 / 6 / 0
Регистрация: 23.02.2023
Сообщений: 431
08.03.2024, 18:52  [ТС]
почему выдаёт ошибку? Uncaught
SyntaxError:
Unexpected token '{'
line:71
как исправить?

PHP/HTML
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<!DOCTYPE html>
<html>
 <head>
  <title></title>
  <style>
   div {
    white-space: nowrap;
   }
  </style>
    
  </head>
  <body>
   <div>
     <select id="weekday"></select><br>
     <input id="day" type="text" size="1">
     <select id="month"></select><br>
     <input id="year" type="text" size="3"> <span> г.</span>
     <select id="era"></select>
   </div>
    <script>
 
        var selday = document.getElementById('weekday');
        var inpday = document.getElementById('day');
        var selmonth = document.getElementById('month');
        var inpyear = document.getElementById("year");
        var selera = document.getElementById("era");
 
        var days = [
        "воскресенье","понедельник","вторник",
        "среда","четверг","пятница","суббота"
        ];
 
        var months = [
        "января","февраля","марта","апреля",
        "мая","июня","июля","августа",
        "сентября","октября","ноября","декабря"
        ];
 
        var eras = [["до н. э.", "-"], ["н. э.", "+"]];
 
        var date = new Date();
 
        for(var i = 0; i < months.length; i++) { // месяц
        var option = new Option(months[i], i);
        if(i === date.getMonth()) option.selected = true;
        selmonth.appendChild(option);
        }
 
        selday.appendChild(new Option(days[date.getDay()])).selected = true; // день недели
 
        inpday.value = date.getDate();
 
        inpyear.value = date.getFullYear();
        
        inpyear.addEventListener('input', function () {
        var val = this.value.replace(/\d+/g, '');
        this.value = val.length > 6 ? val.slice(0, 6) : val;
        });
 
        for(var i = 0; i < eras.length; i++) {
        var opt = selera.appendChild(new Option(eras[i][0], eras[i][1]));
        if(eras[i][0] === "н. э.") opt.selected = true;
        }
        
        function formatDate(date) {
            var day = date.getDate().toString().padStart(2, '0');
            var month = (date.getMonth() + 1).toString().padStart(2, '0');
            var year = Math.abs(date.getFullYear()).toString().padStart(6, '0');
            var era = date.getFullYear() >= 0 ? '+' : '-';
            
            var formattedDate = ${day} ${months[date.getMonth()]} ${year} г. ${era} н.э.;
            
            return formattedDate;
        }
        
        function updateWeekday() {
            var selectedDate = new Date(${inpyear.value}-${selmonth.value.padStart(2, '0')}-${inpday.value.padStart(2, '0')});
            
            selday.innerHTML = '';
            selday.appendChild(new Option(days[selectedDate.getDay()])).selected = true;
        }
        
        inpday.addEventListener('input', updateWeekday);
        selmonth.addEventListener('change', updateWeekday);
        inpyear.addEventListener('input', updateWeekday);
        selera.addEventListener('change', updateWeekday);
 
    </script>
   </div>
  </body>
</html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.03.2024, 18:52
Помогаю со студенческими работами здесь

Добавить n дней к дате в виде строки dd.mm.yy
Из строки содержащей корректно заданную дату в формате &quot;dd.mm.yy&quot; где dd-день, mm-месяц, yy-год, получить строку с датой, отстоящей от...

Добавить к дате несколько рабочих дней
простое добавление дней понятно. но как добавить только рабочие дни? понятно, что с праздниками всё сложно... пусть тогда вычеркнуты будут...

Как добавить "N" рабочих дней к сегодняшней дате?
Сегодня 5.05.2020 (вторник) если к нему добавить 4 рабочих дня то получится 11.05.2020 (понедельник). Т.е. выходные (сб, вс.) не считаем. ...

Добавить заданное количество дней к текущей дате
Здравствуйте! Мне нужно сделать програмку которая будет брать текущую дату выводить ее в Label, потом добавить к этой дате 10 дней и...

А можно ли добавить к дате определенное кол-во дней?
А можно ли добавить к дате определенное кол-во дней? Например, сегодня 2004-10-08, мне надо добавить 10 дней и получить 2004-10-08....


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru