LINUX.ORG.RU
ФорумAdmin

Получить вчерашнюю дату.


0

0

Пишу тут скриптик, в котором необходимо получить дату за вчера в определенном формате. Получаю сегодняшнюю дату таким образом:

date '+%d.%m.%Y'

Результат:

09.05.2008

Нужно получить дату в таком же формате, только за вчерашний день. Кто нить поможет? А то `man date` не выручает.

★★★

Ответ на: комментарий от anonymous

Неспортивно. Да и короче так: php -r 'echo strftime("%d.%m.%Y", time()-86400);'

:)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> А так - echo `date +%s`|awk '{print strftime("%d.%m.%Y", $1-86400)}'

Благодарю.

VirRaa ★★★
() автор топика

> `man date` не выручает.

Почему не выручает? Выручает:
date '+%d.%m.%Y' --date="(date) -1 day"

anonymous
()
Ответ на: комментарий от VirRaa

Только не очень кроссплатформенно. Попробовал в HP/UX - фигу, нет такой опции там.


PS капча monoher..

anonymous
()
Ответ на: комментарий от anonymous

> Только не очень кроссплатформенно. Попробовал в HP/UX - фигу, нет такой опции там.

У меня все заработало. А тем кому не подойдет, пусть сами модифицируют.

VirRaa ★★★
() автор топика
Ответ на: комментарий от sdio

balancer@www:/home/balancer> date '+%d.%m.%Y' -d yesterday
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... 
            [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]
balancer@www:/home/balancer> uname -a
FreeBSD www.avias.local 4.11-STABLE FreeBSD 4.11-STABLE #7: Sun Jan  8 21:33:59 MSK 2006     root@www.avias.local:/usr/obj/usr/src/sys/WWW  i386

balancer@www:/home/balancer> date '+%d.%m.%Y' --date="(date) -1 day"
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... 
            [-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]


balancer@www:/home/balancer> echo `date +%s`|awk '{print strftime("%d.%m.%Y", $1-86400)}'
08.05.2008

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Пользуйся GNU утилитами, кроме того ты не автор темы, а у него вопросов совместимости не возникло.

sdio ★★★★★
()
Ответ на: комментарий от VirRaa

info date
[SKIP]

   This section describes the textual date representations that GNU
programs accept.  These are the strings you, as a user, can supply as
arguments to the various programs.  The C interface (via the `get_date'
function) is not described here.

* Menu:

* General date syntax::            Common rules.
* Calendar date items::            19 Dec 1994.
* Time of day items::              9:20pm.
* Time zone items::                EST, PDT, GMT.
* Day of week items::              Monday and others.
* Relative items in date strings:: next tuesday, 2 years ago.
* Pure numbers in date strings::   19931219, 1440.
* Seconds since the Epoch::        @1078100502.
* Specifying time zone rules::     TZ="America/New_York", TZ="UTC0".
* Authors of get_date::            Bellovin, Eggert, Salz, Berets, et al.

sdio ★★★★★
()
Ответ на: комментарий от KRoN73

Ну так анонимус уже сказал, что не кроссплатформенно.

# uname -a
Linux idev.uz 2.6.23.1-42.fc8 #1 SMP Tue Oct 30 13:18:33 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux

Работает.

VirRaa ★★★
() автор топика
Ответ на: комментарий от sdio

>кроме того ты не автор темы

А это тут вообще при чём? Дай тогда ссылку на Правла Этой Темы, где сказано кому, что и как писать можно :)

А пока вижу унылый офтопик только :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

То что, мог бы просто сказать, что решение не кроссплатформенное, а не показывать как Михаил, вывод заведомо не работающих, с указанными опциями, утилит.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.