Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Прибавить к дате 7 дней (https://javascript.ru/forum/misc/41041-pribavit-k-date-7-dnejj.html)

tzarek 29.08.2013 12:09

Прибавить к дате 7 дней
 
Подскажите, пожалуйста, как к дате в виде строки dd/mm/yyyy прибавить 7 дней и опять вывести ее в строку в таком же формате. Желательно конечно с помощью типа Дата это все сделать.

animhotep 29.08.2013 12:22

добавить дней так
var today = new Date(),
     inWeek = new Date();
inWeek.setDate(today.getDate()+7);
alert("сегодня: "+today+" Через неделю: "+inWeek);

tzarek 29.08.2013 12:53

Это конечно работает, но на входе имеется именно текстовая строка в виде dd/mm/yyyy и на выходе нужно иметь такую же(

tzarek 29.08.2013 12:54

а Date.parse() к такой строке не получается почему то применить, только к строке вида mm/dd/yyyy(

рони 29.08.2013 13:14

tzarek,
:cray:
function get(data)
{
   data = data.split('/');
   data = new Date(data[2], +data[1]-1, +data[0], 168, 0, 0, 0);
   data = [data.getDate(),data.getMonth()+1,data.getFullYear()];
   data = data.join('/').replace(/(^|\/)(\d)(?=\/)/g,"$10$2");
   return data
}
alert(get("29/08/2013"));

tzarek 29.08.2013 13:33

Спасибо огромное!!! Подскажите новичку еще, пожалуйста, а в этой функции где мы 7 дней прибавляем? И как можно изменять количество прибавляемых дней?

tzarek 29.08.2013 13:34

Как я понял, как раз 168 это количество прибавляемых часов?

рони 29.08.2013 13:46

tzarek,
168 - да часы и более правильная версия
function get(data, day)
{
   data = data.split('/');
   data = new Date(data[2], +data[1]-1, +data[0]+day, 0, 0, 0, 0);
   data = [data.getDate(),data.getMonth()+1,data.getFullYear()];
   data = data.join('/').replace(/(^|\/)(\d)(?=\/)/g,"$10$2");
   return data
}
alert(get("29/08/2013", 7));

tzarek 29.08.2013 14:17

Огромнейшее спасибо)

AtomicJ 13.02.2015 16:02

Не стал создавать новую тему, т.к. вопрос близок с этой.

В общем, нужно в разных местах сайта выводить даты, отличающиеся от текущей на несколько дней (в разные стороны). И это разница в разных местах разная и задается при вызове функции.

На основе вышеприведенных примеров написал код, но он не работает((
<html> 
    <head>
    <script type="text/javascript">
		function get(dday) {
			var today = new Date(),
     newdate = new Date();
newdate.setDate(today.getDate()+dday);
alert("сегодня: "+date.getDate(date)+" Через " +ddate+ ": "+date.getDate(newdate));
return date.getDate(newdate);
}
	</script>
    </head>
    <body>
    <script  type="text/javascript">document.write(get(-7));</script><br>
<script  type="text/javascript">document.write(get(5));</script>


Изначально код был такой,

<script type="text/javascript">
		function getMonth(date) {
			var month = ['января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'] ;
			return month[ date.getMonth() ];
		}
		var date = new Date();
		date.setDate(date.getDate() + 3);
		bf=getMonth(date);
	</script>


а выводилось так:
<script  type="text/javascript">document.write(date.getDate() + " " + bf);</script>

Но здесь дата задается фиксированно, и в разных местах разные даты уже не поставить.

Нужно в таком-же формате (число и месяц) выводить данные несколько раз с разницей от текущей даты.

Подскажите пожалуйста, что не так в моем коде. Спасибо.


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