Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2013, 12:09
Интересующийся
Отправить личное сообщение для tzarek Посмотреть профиль Найти все сообщения от tzarek
 
Регистрация: 27.08.2013
Сообщений: 20

Прибавить к дате 7 дней
Подскажите, пожалуйста, как к дате в виде строки dd/mm/yyyy прибавить 7 дней и опять вывести ее в строку в таком же формате. Желательно конечно с помощью типа Дата это все сделать.
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2013, 12:22
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

добавить дней так
var today = new Date(),
     inWeek = new Date();
inWeek.setDate(today.getDate()+7);
alert("сегодня: "+today+" Через неделю: "+inWeek);
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2013, 12:53
Интересующийся
Отправить личное сообщение для tzarek Посмотреть профиль Найти все сообщения от tzarek
 
Регистрация: 27.08.2013
Сообщений: 20

Это конечно работает, но на входе имеется именно текстовая строка в виде dd/mm/yyyy и на выходе нужно иметь такую же(
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2013, 12:54
Интересующийся
Отправить личное сообщение для tzarek Посмотреть профиль Найти все сообщения от tzarek
 
Регистрация: 27.08.2013
Сообщений: 20

а Date.parse() к такой строке не получается почему то применить, только к строке вида mm/dd/yyyy(
Ответить с цитированием
  #5 (permalink)  
Старый 29.08.2013, 13:14
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

tzarek,

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"));

Последний раз редактировалось рони, 29.08.2013 в 13:49.
Ответить с цитированием
  #6 (permalink)  
Старый 29.08.2013, 13:33
Интересующийся
Отправить личное сообщение для tzarek Посмотреть профиль Найти все сообщения от tzarek
 
Регистрация: 27.08.2013
Сообщений: 20

Спасибо огромное!!! Подскажите новичку еще, пожалуйста, а в этой функции где мы 7 дней прибавляем? И как можно изменять количество прибавляемых дней?
Ответить с цитированием
  #7 (permalink)  
Старый 29.08.2013, 13:34
Интересующийся
Отправить личное сообщение для tzarek Посмотреть профиль Найти все сообщения от tzarek
 
Регистрация: 27.08.2013
Сообщений: 20

Как я понял, как раз 168 это количество прибавляемых часов?
Ответить с цитированием
  #8 (permalink)  
Старый 29.08.2013, 13:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

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));
Ответить с цитированием
  #9 (permalink)  
Старый 29.08.2013, 14:17
Интересующийся
Отправить личное сообщение для tzarek Посмотреть профиль Найти все сообщения от tzarek
 
Регистрация: 27.08.2013
Сообщений: 20

Огромнейшее спасибо)
Ответить с цитированием
  #10 (permalink)  
Старый 13.02.2015, 16:02
Новичок на форуме
Отправить личное сообщение для AtomicJ Посмотреть профиль Найти все сообщения от AtomicJ
 
Регистрация: 13.02.2015
Сообщений: 2

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

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

На основе вышеприведенных примеров написал код, но он не работает((
<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>

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

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

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

Последний раз редактировалось AtomicJ, 13.02.2015 в 16:08.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нажатие по дате в календаре срабатывает только со второго клика afr0 Events/DOM/Window 4 31.10.2012 13:39
Как получить количество дней до определенной даты beard Общие вопросы Javascript 3 24.06.2012 17:22
Посчет дней в году Anastasiy17 Общие вопросы Javascript 3 01.04.2012 15:32
Как рассчитать дату и время по количеству дней и часов skalka Общие вопросы Javascript 4 01.10.2010 09:21
Подсчет дней в IE, даты пользователя gotravelman Internet Explorer 6 26.02.2009 16:25