Добавьте 24 часа в getTime() для каждого 5000 символов

118
12

Я бы сделал цикл javascript, который вернет мне дату в зависимости от того, сколько символов в документе.

var d = new Date.getTime();
var s = 9349859; //Random number of characters

if(s < 5000){
d = "Same day";
}else{
//Do the loop I'm searching
....

Но если я хочу сделать цикл, то каждый 5000 символов, которые он добавит 24 часа в getTime() var. Как?

спросил(а) 2021-01-19T12:32:54+03:00 6 месяцев назад
1
Решение
78

Просто получите количество дней и добавьте к объекту даты

var d    = new Date();
var s = 9349859;
var days = Math.floor( s / 5000 );

d.setDate(d.getDate() + days);

FIDDLE

ответил(а) 2021-01-19T12:32:54+03:00 6 месяцев назад
45

То, что вы просто можете сделать, это что-то вроде этого:

Date.prototype.addHours= function(h){
this.setHours(this.getHours()+h);
return this;
}

var d = new Date.getTime();
var s = 9349859; //Random number of characters
var h = 0;

if(s < 5000){
d = "Same day";
}else{
while(s >= 5000) {
h++;
s -= 5000;
}

h = h * 24;

d = new Date().addHours(h);
}

ответил(а) 2021-01-19T12:32:54+03:00 6 месяцев назад
45

Для этого вам не нужна петля. Просто разделите количество символов на 5000, чтобы получить количество дней для добавления. Вы можете захотеть floor (закруглить) или ceil (округлить). Мой пример округляется - поэтому добавляется день на каждые 5000 символов или его часть:

var d = new Date();
var s = 9349859; //Random number of characters

var numDays = Math.ceil(s/5000);

var newDate = new Date()
newDate.setDate(d.getDate() + numDays);

Пример: http://jsfiddle.net/SJV26/

ответил(а) 2021-01-19T12:32:54+03:00 6 месяцев назад
45

вы абсолютно хотите петлю? я бы посоветовал вам просто подсчитать количество символов, разделенных диапазоном, который вы хотите (500), и добавить количество требуемых часов.

поэтому никаких циклов...

ответил(а) 2021-01-19T12:32:54+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема