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 09:53

Цитата:

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

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

Besprizornik 25.02.2019 11:00

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

Nexus 25.02.2019 12: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 13: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 21:37

Хм...

Besprizornik 26.02.2019 23:03

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

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

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

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

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

Besprizornik 27.02.2019 00:35

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

Besprizornik 27.02.2019 00:43

Цитата:

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

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

Besprizornik 27.02.2019 01:30

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

Besprizornik 27.02.2019 03:19

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


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