Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вычитание дат в Javascript (https://javascript.ru/forum/misc/52664-vychitanie-dat-v-javascript.html)

Nexus 25.02.2019 08:53

Цитата:

Сообщение от рони
лишнее

Просто явное приведение к int
Да, ошибка. Конструктор принимает не миллисекунды, а секунды.

Besprizornik 25.02.2019 10:00

я незнаю где и что принимает, но выдало 25 февраля без миллисекунд, и 24 февраля с милисекундами...

Nexus 25.02.2019 11:00

Rise, понедельник - день тяжелый :)
Конструктор класса Date принимает миллисекунды.
Метод getMilliseconds возвращает миллисекунды (0-999) указанной даты по местному времени.
Для явного приведения к int нужно использовать методе getTime, который возвращает количеством миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC

В итоге должно было получиться так:
var d = new Date(
    new Date().getTime()-24*60*60*1000
);


рони, Rise, спасибо, что указали на ошибку)

Besprizornik 26.02.2019 12:54

кто поможет доработать скрипт?
имеется скрипт который выводит сегодняшнюю дату и вторую дату на 13 дней меньше, надо сделать чтобы у второй даты отнималось разное количество дней в разные периоды времени, согласно таблице
<script>
var d = new Date(); var day=new Array("Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота");
var month=new Array("января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря");
document.write(day[d.getDay()]+"<br/>" +d.getDate()+ " " + month[d.getMonth()]+ " " + d.getFullYear());
document.write("<br>");
d.setDate(d.getDate() - 13);
document.write(d.getDate()+ " " + month[d.getMonth()] + " " + d.getFullYear())
</script>
<br/><br/><br/><br/><br/>
<table border="1">
<tr><td>Кол-во дней</td><td>период чч.мм.гггг – чч.мм.гггг</td></tr><tr><td>10</td><td>15.10.1582 — 11.03.1700</td></tr>
<tr><td>11</td><td>12.03.1700 — 12.03.1800</td></tr>
<tr><td>12</td><td>13.03.1800 — 13.03.1900</td></tr>
<tr><td>13</td><td>14.03.1900 — 14.03.2100</td></tr>
<tr><td>14</td><td>15.03.2100 — 15.03.2200</td></tr><tr><td>15</td><td>16.03.2200 — 16.03.2300</td></tr></table>

Besprizornik 26.02.2019 20:37

Хм...

Besprizornik 26.02.2019 22:03

Внимание опрос ! ! !
почему мой предыдущий вопрос остался без ответа?

1.) Вопрос понятен, но не знаю решения...

2.) Вопрос сформулирован некорректно, поэтому непонятен...

3.) ты уже всех достал...

4.)Предложите свой вариант ответа

Besprizornik 26.02.2019 23:35

Rize, но во вторую строку можно поставить нужную дату
var d = new date ( сюда ); или и нет?

Besprizornik 26.02.2019 23:43

Цитата:

Сообщение от Rise (Сообщение 504138)
Besprizornik, а до 15.10.1582 какая разница?

разница 0 потому что Григорий VIII еще не подписал указ о принятии нового календаря названного в его честь...

Besprizornik 27.02.2019 00:30

P. S. григорианский календарь впервые введён папой римским Григорием VIII 15.10.1582 г. поэтому введённая дата не корректна, с таким приблизительно текстом у span'а меняется стиль с display: none; на display: block;

Besprizornik 27.02.2019 02:19

зачем переводить дату до 1582г по юлианскому календарю в григорианский, если григорианского в то время не существовало, даже в википедии сказано что это не корректно... просто показываем спан и нафига лишняя морока с какими то другими (пролептическими) календарями, не было до этого григорианского и точка(эррор). другими словами словами пусть в пролептическом хоть девять с сотыми долями, это нас не волнует, поскольку находится за рамками поставленной задачи, цель ограничивается только указанным периодом, см таблицу первая и последняя строки.
весь скрипт поместится в 10-15строк, и займёт 5 мин времени...


Часовой пояс GMT +3, время: 17:43.