вот хотел спросить у общественности
- From
- Max Kuznetsov (2:5020/845.101)
- To
- Vladimir Marunin
- Date
- 2005-08-18T19:56:56Z
- Area
- RU.PERL
Привет Vladimir!
>> A> дату изменить текущую на определенное количество дней
>> A> я вот так в лобсделал но сие не красиво
>> A> и потом формат не совпадает для однозначных дат получается
>> A> 2005-08-1
>> A> а надо бы 2005-08-01
>>
>> A> $datestamp = strftime "%Y-%m-%d_%H:%M:%S", localtime;
>> A> print $datestamp, "\n";
>>
>> A> my $date_tek_y_m = strftime "%Y.%m.", localtime;
>> A> my $date_tek_d = strftime "%d", localtime;
>> A> my $d=1;
>> A> $date_tek = $date_tek_y_m.($date_tek_d-$d);
>>
>> A> print $date_tek, "\n" ;
>>
>> Если тебе надо просто получеть строку с исомой датой, то просто localtime
>> прибавляешь или отнимаешь колшичествао дней * 86400 и выводишь в нужном
>> формате
>>
>> $time = localtime + (86400 * $d);
>> $datestamp = strtftime "%Y-%m-%d_%H:%M:%S", $time;
>> print $datestamp, "\n";
VM> Непарвда твоя. Далеко не во всех сутках 86400 секунд. Дважды в год это не
VM> верно (переход с зимнего на летнее время и наоборот), поэтому если сейчас
VM> время около полуночи (от 23:00 до 01:00) то такая схема может дать ошибку
VM> на сутки.
VM> Или возьми нормальный модуль для работы с данными (лучше),
VM> либо проверяй время на полночь, например так:
VM> $time = time() + (86400 * $d) +(12 - (localtime())[2] )*3600;
VM> datestamp = strtftime "%Y-%m-%d_%H:%M:%S", $time;
VM> Тут идея в том, чтобы брать середину суток (я вычитаю текущие часы и
VM> прибавляю 12).
Идея!! =) как я сам-то не подумал =)) старею
Привык с датами работать прямо в MySQL, там и считать ни чего не надо.
Кстати, какие модули для работы с датами по проще и пошустрее (умеют не много но делают это хорошо)?
С уважением
Max
---
* Origin: ЄєЄ хёЄхёЄтхээю фюыцхэ с Є юЁшфцшэ... (2:5020/845.101)
SEEN-BY: 50/203 551 140/1 400/462 814 450/186 451/30 4635/4 5000/5000
SEEN-BY: 5001/5001 5010/53 5012/8 46 5015/10 5020/77 154 175 400 545 549 552
SEEN-BY: 5020/561 570 715 758 818 826 828 830 834 845 958 1031 1455 1523 1575
SEEN-BY: 5020/1588 1604 1817 1822 1960 1990 2015 2020 2044 2142 2174 2209 2238
SEEN-BY: 5020/2501 2590 3204 3360 4343 4441 7770 8086 9636 10192 12000 5021/3
SEEN-BY: 5021/29 5022/5 128 5025/3 750 5027/16 5030/49 115 436 556 966 1063
SEEN-BY: 5030/1339 1900 5031/47 70 5033/21 5040/47 5042/13 5043/0 5045/7
SEEN-BY: 5052/4 5054/1 8 9 35 36 37 45 66 67 81 85 5056/16 5059/9 5060/3
SEEN-BY: 5061/120 5062/1 10 5064/39 5066/18 5069/7 5070/1222 5076/1 5077/70 80
SEEN-BY: 5080/80 1003 5082/6 5083/21 5085/13 5090/108 113 5095/20 5096/18
SEEN-BY: 6000/12 6056/1
PATH: 5020/845 12000 715 4441 545 5054/1 37