Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Даты в JavaScript / 21 сообщений из 21, страница 1 из 1
18.04.2013, 16:10
    #38231137
Даты в JavaScript
Мальчики помогите неопытной девушке(((

Есть дата (строковая переменная) 20130401

как уменьшить строку на день, чтобы было не 20130331, а 20130400?

вариант низя использовать :
var day = (((clOrdId.substring(0, 2)) * 1) - 1;
var month = (clOrdId.substring(2, 4)) * 1;
var year = (clOrdId.substring(4, 6)) * 1;

Модератор: Если код не будет обрамлен тэгами, он будет удален.
[IDV]
...
Рейтинг: 0 / 0
18.04.2013, 16:11
    #38231141
Даты в JavaScript
в идеале можно переделать этот код:
var day = ((r.substring(0, 2)) * 1) - 17;
var month = (r.substring(2, 4)) * 1;
var year = (r.substring(4, 6)) * 1;

if ((day==31 && (month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12)) ||
(day==30 && (month==4 || month==6 || month==9 || month==11)) ||
(day==29 && month==2) ||
(day==28 && month==2 && (year % 4)!=0))
{
day = 1;
month++;
if (month==13)
{
month = 1;
year++;
}
}
else
day++;

day = day.toString();
month = month.toString();

if (day.length == 1)
day = "0" + day;

if (month.length == 1)
month = "0" + month;

var date = "20" + year.toString() + month + day;
...
Рейтинг: 0 / 0
18.04.2013, 16:17
    #38231168
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
нулевое апреля это как?
...
Рейтинг: 0 / 0
18.04.2013, 16:22
    #38231185
Даты в JavaScript
Паганель,
вот и я о том же.
как сделать так, чтобы выдавал не 0 апреля, а 31 марта
...
Рейтинг: 0 / 0
18.04.2013, 16:32
    #38231218
Даты в JavaScript
Мармеладка_,

ох блин, мне уже плохо!
конечно же правильно должно быть 20130331, а не 20130400
...
Рейтинг: 0 / 0
18.04.2013, 16:40
    #38231238
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
1) http://javascript.ru/Date.parse
2) http://javascript.ru/Date/valueOf
3) отнять количество миллисекунд в сутках
4) http://javascript.ru/Date
5) http://javascript.ru/Date/toLocaleFormat
...
Рейтинг: 0 / 0
18.04.2013, 16:42
    #38231244
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
Мармеладка_,
так что-ли? ))
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
<!doctype html>
<html>
<head>
</head>
<body>
<input type="button" value="Вычесть 1 от 20130401" onclick="alert((parseInt('20130401',10)-1).toString())" />
</body>
</html>
...
Рейтинг: 0 / 0
18.04.2013, 16:48
    #38231261
Даты в JavaScript
Паганель,

при миллисекундах (дата = 20130400):

var date = "20" + year.toString() + month + day;

var converted = Date.parse(date);
var myDate = new Date(converted);

var milliseconds = myDate.getMilliseconds() - 24 * 60 * 60 * 1000;
myDate.setMilliseconds(milliseconds);


он мне в дату записывает:
Mon Dec 31 201303 00:00:00 GMT+0400 (Russian Standard Time)
...
Рейтинг: 0 / 0
18.04.2013, 16:49
    #38231265
Даты в JavaScript
asws,

нет, чувак)
при вычитании из 20130401 он выдает 20130400, а должен 20130331
...
Рейтинг: 0 / 0
18.04.2013, 17:04
    #38231304
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
Код: javascript
1.
2.
3.
4.
5.
6.
7.
var myDate = "20130401";

var newDate = myDate.replace(/(\d{4})(\d\d)(\d\d)/, function(a, y, m, d){
	function lpad(a) { return (a<10)?('0'+a):a; }
	var dt = new Date(y, m-1, d-1); 
	return ""+dt.getFullYear()+lpad(dt.getMonth()+1)+lpad(dt.getDate());
});
...
Рейтинг: 0 / 0
18.04.2013, 17:06
    #38231310
Даты в JavaScript
Яростный Меч,

ок, ну полученное значение, т.е. дату после вычитания, надо запихнуть в переменную.
каким образом?
...
Рейтинг: 0 / 0
18.04.2013, 17:12
    #38231323
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
Мармеладка_ну полученное значение, т.е. дату после вычитания, надо запихнуть в переменную.а что, по-твоему, делает код
Код: javascript
1.
var newDate = ...
...
Рейтинг: 0 / 0
18.04.2013, 17:15
    #38231328
Даты в JavaScript
Яростный Меч,ок

в дату он мне запихнул: 201304-1
...
Рейтинг: 0 / 0
18.04.2013, 17:16
    #38231333
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
какой браузер?
...
Рейтинг: 0 / 0
18.04.2013, 17:17
    #38231335
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
Мармеладка_, примерно так:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
var dateString = addDays("20130401", -1)

function addDays(dateString, days) {
	var date = new Date(
		parseInt(dateString.substring(0, 4)),
		parseInt(dateString.substring(4, 6), 10)-1,
		parseInt(dateString.substring(6, 8), 10)
	);

	var millisecondsInDay = 24 * 60 * 60 * 1000;
	date = new Date(date.valueOf() + millisecondsInDay*days);
	return date.getFullYear()
		+ (date.getMonth() > 8 ? "" : "0") + (date.getMonth()+1)
		+ (date.getDate() > 9 ? "" : "0") + date.getDate();
}
...
Рейтинг: 0 / 0
18.04.2013, 17:17
    #38231339
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
Мармеладка_Паганель,

при миллисекундах (дата = 20130400):

var date = "20" + year.toString() + month + day;

var converted = Date.parse(date);
var myDate = new Date(converted);

var milliseconds = myDate.getMilliseconds() - 24 * 60 * 60 * 1000;
myDate.setMilliseconds(milliseconds);


он мне в дату записывает:
Mon Dec 31 201303 00:00:00 GMT+0400 (Russian Standard Time)это Вы по моим шагам делали?
а можете номерочки шагов указать?
...
Рейтинг: 0 / 0
18.04.2013, 17:25
    #38231369
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
Мармеладка_в дату он мне запихнул: 201304-1проверил в 4 браузерах, всё норм. везде
...
Рейтинг: 0 / 0
18.04.2013, 17:31
    #38231385
Даты в JavaScript
Яростный Меч,
FF
...
Рейтинг: 0 / 0
18.04.2013, 17:35
    #38231397
asws
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
Этото г-код везде работает ))
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<!doctype html>
<html>
<head>
<script type="text/javascript">
function myDate() {
var i,d,m,y,dt,t=document.getElementById('myID1').value,n=parseInt(document.getElementById('myID2').value,10)||1;
y=parseInt(t.substr(0,4),10)||2000; m=parseInt(t.substr(4,2),10)||1; d=parseInt(t.substr(6,2),10)||1;
d+=n; dt=new Date(y,m-1,d);
y=dt.getFullYear().toString();
m=(dt.getMonth()+1).toString(); if(m.length==1)m='0'+m;
d=dt.getDate().toString(); if(d.length==1)d='0'+d;
alert(y+m+d);
}
</script>
</head>
<body>
Дата в формате: <input type="text" id="myID1" value="20130401" /><br>
Число дней: <input type="text" id="myID2" value="-1" /><br><br>
<input type="button" value="Сложить" onclick="myDate()" /><br>
</body>
</html>
...
Рейтинг: 0 / 0
18.04.2013, 17:35
    #38231398
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
Мармеладка_Яростный Меч,
FF http://jsfiddle.net/XBMCQ/
...
Рейтинг: 0 / 0
18.04.2013, 17:49
    #38231424
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Даты в JavaScript
aswsЭтото г-код везде работает ))

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

Код: javascript
1.
2.
	sss = new Date(new Date("20130401".replace(/(\d{4})(\d{2})(\d{2})/, '$2/$3/$1')).valueOf() - 86400000);
	alert(sss.getFullYear().toString() + (sss.getMonth() + 1 < 10 ? '0' + (sss.getMonth() + 1).toString() : (sss.getMonth() + 1).toString()) + (sss.getDate() < 10  ? '0' + sss.getDate().toString() : sss.getDate()));
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Даты в JavaScript / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]