Jump to content

Самая сладкая

Newbie
  • Posts

    18
  • Joined

  • Last visited

Posts posted by Самая сладкая

  1. если он генерируется один раз в день, то достаточно 6 цифр которые брались из даты, зачем лишние действия с генерацие случайного числа? Номер заказа - я так понимаю у вас 1 раз в день заказывают что-то на сайте и больше нельзя будет сделать заказ?

    не, много раз заказывают. поэтому остальные числа - число от 0 до 4 000 456 000

  2. Код для валидации даты

    var day = parseInt(R.substring(0, 2), 10) ;
    var month = parseInt(R.substring(2, 4), 10);
    var year = 2000 + parseInt(R.substring(4, 6), 10);

    var tmpDate = new Date(year, month-1 /* нумерация с 0 */ , day),
    newYear = tmpDate.getFullYear(),
    newMonth = (tmpDate.getMonth()+1),
    newDate = tmpDate.getDate();

    if (newMonth < 10) newMonth = "0" + newMonth;
    if (newDate < 10) newDate = "0" + newDate;

    var zzz = ' ' + newDate + newMonth + newYear + R.substring(6, R.length);

    как сделать, чтобы год выводился в формате YY?

  3. Так у вас вообще нет переменной date). Да и дата уже разобрана. Как-то так?

    а вот кстати.

    что исправить в коде, чтобы он из любой текущей даты вычитал 1 день?

  4. Так у вас вообще нет переменной date). Да и дата уже разобрана. Как-то так?

    боже мой! спасибо!!! кое чудо...

    пойду напьюсь от радости *да простят меня Одмины :yahoo:*

  5. Можно глянуть полный итоговый код?

    генерируем № заказа (переменная R) - текущая дата + куча ненужной инфы.

    достаем оттуда текущую дату. 19 вычитаем для проверки работы


    var day = ((R.substring(0, 2)) * 1) - 19;
    var month = (R.substring(2, 4)) * 1;
    var year = (R.substring(4, 6)) * 1;

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

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

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

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

    var dateParts = date.match(/(\d{4})(\d{2})(\d{2})/),
    year = dateParts[1],
    month = dateParts[2],
    day = dateParts[3];

    var tmpDate = new Date(year, month-1 /* нумерация с 0 */ , day -1),
    newYear = tmpDate.getFullYear(),
    newMonth = (tmpDate.getMonth()+1),
    newDate = tmpDate.getDate();

    if (newMonth < 10) newMonth = "0" + newMonth;
    if (newDate < 10) newDate = "0" + newDate;

    zzz = '' + newYear + newMonth + newDate;

    Где-то ниже выводим zzz

  6. Просто присвоить правую часть этой нужной переменной, а не document.body.innerHTML (она в примере чисто для наглядности).

    он мне на какую-то 1 ругается.

    20130401 изначально является строкой, а не датой

  7. ранее генерируется число - № заказа из которого мы получаем дату.

    -19 для того, чтобы проверить работу

    var day = ((r.substring(0, 2)) * 1) - 19;
    var month = (r.substring(2, 4)) * 1;
    var year = (r.substring(4, 6)) * 1;

    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;

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

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

    :) ясно :)

    Тогда, возможно, как-то так?

    как запихнуть

     document.body.innerHTML += '' + newYear + newMonth + newDate;

    в переменную?

  8. Так, возможно я вас неправильно понял. Вам что надо? Я думал вам надо корректно вычесть день из определенной даты, не?

    не, у меня дата генерируется текущая. но она в формате string.

    потом нужно дату уменьшить на 1 день (задание такое) и вывести

    и в результате этого косяк.

    если текущая дата = 20130401, то выводится 20130400

    (чего уж и говорить об уменьшении даты 20130101)

    чтобы было не 20130331, а 20130400?

    А какой смысл в такой записи? Вообще-то первое апреля минус день — именно 31 марта, а не нулевое апреля...

    А кто вам мешает посчитать 24*60*60 и вычесть это число из переменной?

    Во-первых, не во всех странах все сутки в году имеют такую продолжительность. Во-вторых, результатом такой процедуры по всем раскладам будет 31 марта, а автору тему зачем-то нужно "нулевое апреля"...

    автор переусердствовал.

    результатом у меня является 00 апреля, а должно 31 марта, т.к. дата генерируется раннее, но в формате string


  9. var d = new Date(2013, 4, 1);
    var milliseconds = d.getMilliseconds() - 24 * 60 * 60 * 1000;
    d.setMilliseconds(milliseconds);
    alert(d);

    а если дата уже заранее задана строкой, тогда ее надо преобразовать в дату, да?

    и какой результат выдаст ваш код если дата 1 апреля

    у меня приходит:

    Mon Dec 31 201303 00:00:00 GMT+0400 (Russian Standard Time)

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

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

    Вычесть единицу не катит

    var day = (((r.substring(0, 2)) * 1) - 1;

    var month = (r.substring(2, 4)) * 1;

    var year = (r.substring(4, 6)) * 1;

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy