Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> получить дату, Не могу получить одну дату без времени 
:(
    Опции темы
Str!pe
Дата 31.3.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: нет
Всего: 152



Добрый день всем.
Проблема у меня следующего характера
Цитата

print scalar(localtime);

отдает дату машины пользователя вместе со временем, мне же необходимо вытащить только дату, месяц и день. В страницу они должны попасть в три разных тега, тоесть дата вида "25" в один тег, месяц вида "август" в другой тег, день вида "пятница" в третий.
Знает ли кто-нибудь как это организовать?

З.Ы. С Перлом да и вообще с любым языком прпограммирования знаком второй день (остаточные знания по Паскалю не считаются).


Это сообщение отредактировал(а) Str!pe - 31.3.2007, 14:09


--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
shamber
Дата 31.3.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Это очень просто организуется 

Код

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);


и все smile

PS по поводу месяц вида "август" в другой тег, день вида "пятница" в третий.

Код


my @abbr = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
    print "$abbr[$mon] $mday";
    # $mon=9, $mday=18 gives "Oct 18"


остальное смотрите в perldoc -f localtime

Это сообщение отредактировал(а) shamber - 31.3.2007, 15:02
PM MAIL Jabber   Вверх
Str!pe
Дата 31.3.2007, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: нет
Всего: 152



shamber
Ну вот так получается... 

Код

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);

my @abbr = qw( Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь );
    print "$mday";
    print "$abbr[$mon]";
    print "$wday";
    # $mon=9, $mday=18 gives "Oct 18"


я так понимаю надо еще кодировку указать? Да и думаю что делать три разных файла глупо, как раскидать их по тегам?

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


--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
nitr
Дата 31.3.2007, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Str!pe, что значит по тегам раскидать? И зачем на 3 smile
Код ваш вполне нормальный...

Это сообщение отредактировал(а) nitr - 31.3.2007, 15:59


--------------------
PM   Вверх
Str!pe
Дата 31.3.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: нет
Всего: 152



Цитата(nitr @  31.3.2007,  15:56 Найти цитируемый пост)
Str!pe, что значит по тегам раскидать? И зачем на 3 Код ваш вполне нормальный...

Это делается для следующего... в один тег выводится день недели допустим <h3>вторник</h3>, в другой тег допустим <h1>25</h1> выводится дата. В третий выводится месяц <small>Декабрь<small> все это выводится в разных местах стрнаицы.


--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
nitr
Дата 31.3.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Str!pe, у тебя ООП подход?

Если нет, вот тебе функция ;)
Код

#!perl
use strict; use warnings;

print get_my_time()->{mday};

sub get_my_time {
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);

    return {
        'mday' => $mday,
        'mon'  => qw( Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь )[$mon],
        'wday' => $wday,
    };
}


Добавлено через 1 минуту и 21 секунду
Думаю удобно будет ею пользоваться? smile
там соот. 
mon - get_my_time()->{mon};
wday - get_my_time()->{wday};


Добавлено через 5 минут и 49 секунд
можно уменьшить, но может чуть медленней работать ;)
Код

sub get_my_time {
    return {
        'mday' => (localtime(time))[3],
        'mon'  => qw( Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь )[(localtime(time))[4]],
        'wday' => (localtime(time))[6],
    };
}



--------------------
PM   Вверх
nitr
Дата 31.3.2007, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



а можно ещё умнее ;)
Код

sub get_my_time2 {
    return {
        'mday' => $_->[3],
        'mon'  => qw( Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь )[$_->[4]],
        'wday' => $_->[6],
    } for [ localtime(time) ];
}



--------------------
PM   Вверх
tishaishii
Дата 31.3.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 4
Всего: 8



Код
sub fdatetime {
    my($format, %datetime)=shift;
    @datetime{+qw(sec min hour mday mon year wday yday isdst)}=localtime(shift||time);
    $datetime{year}+=1900;
    $datetime{mon}++;
    $format=~s{(\%\d*(?:\.\d*)?[bdoxsleiu])\{(.+?)\}}{+sprintf $1, $datetime{$2}}geio;
    +$format
}

print &fdatetime('%02d{hour}:%02d{min}:%02d{sec}');


Это сообщение отредактировал(а) tishaishii - 31.3.2007, 18:57
PM MAIL ICQ Skype   Вверх
nitr
Дата 31.3.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



первый способ можно тоже извратить... ;) для экономии памяти наверное ;)
Код

sub get_my_time {
    my ($mday, $mon, $wday) = (localtime(time))[3,4,6];

    return {
        'mday' => $mday,
        'mon'  => qw( Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь )[$mon],
        'wday' => $wday,
    };
}

но я выбираю этот http://forum.vingrad.ru/index.php?showtopi...t&p=1082342
красивый (скромно ;) )

P.S.:
tishaishii, он просит, чтобы легче по тегам расскидывать ;)

Это сообщение отредактировал(а) nitr - 2.4.2007, 17:01


--------------------
PM   Вверх
tishaishii
Дата 31.3.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 4
Всего: 8



Ну я и показал как легко это сделать.
А ты читать умеешь или пока что только букву "А" освоил?

Это сообщение отредактировал(а) tishaishii - 31.3.2007, 22:00
PM MAIL ICQ Skype   Вверх
nitr
Дата 1.4.2007, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



[offtopic]
Цитата(tishaishii @  31.3.2007,  21:59 Найти цитируемый пост)
А ты читать умеешь или пока что только букву "А" освоил?

tishaishiiты всегда такой разговорчивый или просто прикидываешься?

Твой код вполне, но не всем новичкам он ясен, особенно твои вечные "+", читаемость кода понижается (новичкам).

Просьба не переходить на личности! Уважения к тебе это не прибавит.
[/offtopic]

Это сообщение отредактировал(а) nitr - 1.4.2007, 13:29


--------------------
PM   Вверх
Str!pe
Дата 2.4.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: нет
Всего: 152



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

Это сообщение отредактировал(а) Str!pe - 2.4.2007, 16:23


--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
Nab
Дата 2.4.2007, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Цитата(Str!pe @  2.4.2007,  16:06 Найти цитируемый пост)
Так, а что я должен указать на странице в тегах... что я должен выставить в cами теги, что бы в них вышли нужные значения? Корче как мне рещультаты скрипта выставить в страницу?

Да уж smile Вы почитайте чего про ссылки и про передачу параметров smile...

Код

sub get_my_time {
    my ($mday, $mon, $wday) = (localtime(time))[3,4,6];

    return {
        'mday' => $mday,
        'mon'  => qw( Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь )[$mon],
        'wday' => $wday,
    };
}

my $res = get_my_time;

print "День: $res->{'mday'}\n";
print "Месяц: $res->{'mon'}\n";
print "День недели: $res->{'wday'}\n";



Это сообщение отредактировал(а) Nab - 2.4.2007, 17:01


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
tishaishii
Дата 2.4.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 4
Всего: 8



Цитата(nitr @ 1.4.2007,  13:20)
[offtopic]
Цитата(tishaishii @  31.3.2007,  21:59 Найти цитируемый пост)
А ты читать умеешь или пока что только букву "А" освоил?

tishaishiiты всегда такой разговорчивый или просто прикидываешься?

Твой код вполне, но не всем новичкам он ясен, особенно твои вечные "+", читаемость кода понижается (новичкам).

Просьба не переходить на личности! Уважения к тебе это не прибавит.
[/offtopic]

А к тебе?
Кому-то что-то показалося, что каие-то возможности, которые часто необходимы использовать нельзя, дабы не казалось, что кто-то нарушает чью-то ранимую психику...
Согласись, это как-то ненормально.
PM MAIL ICQ Skype   Вверх
nitr
Дата 2.4.2007, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



[offtopic]
tishaishii, если что-то не нравится, пишите письма...
И не стоит о себе так уж жестко...
[/offtopic]


Str!pe, вы задаёте вопросы, не ответив и на наши smile Посмотрите внимательней, а ответов на задачу (как поняли многие) предостаточно...


--------------------
PM   Вверх
korob2001
Дата 3.4.2007, 04:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Модератор: Ребята, не ссорьтесь вы по пустякам.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Zuzu
Дата 3.4.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 19.10.2006
Где: Екатеринбург

Репутация: 3
Всего: 4



Цитата(Str!pe @  2.4.2007,  19:06 Найти цитируемый пост)
Так, а что я должен указать на странице в тегах... что я должен выставить в cами теги, что бы в них вышли нужные значения? Корче как мне рещультаты скрипта выставить в страницу?


1. Сформировать HTML "вручную" и вывести его 

Код

#!/usr/bin/perl

use strict;
use CGI;

my $cgi = new CGI;

my $month = 'December';
my $day     = 25;
my $wday  = 'monday';

print $cgi->header;

print <<EO_HTML;
<h1>Super Date Printer</h1>
<p>Month: <strong>$month</strong></p>
<p>Day: <strong>$day</strong></p>
<p>Wday: <strong>$wday</strong></p>
EO_HTML

exit;



2. Рекомендую посмотреть какой-нибудь "шаблонизатор", например HTML::Template


Это сообщение отредактировал(а) Zuzu - 3.4.2007, 13:23
--------------------
Проводить эксперименты на живом сервере опасно, а на мертвом - бесполезно.
PM   Вверх
Str!pe
Дата 11.4.2007, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: нет
Всего: 152



tishaishii
nitr
Ого! Тут драка идет за то что бы новичкам помогать? 
Господа не сорьтесь... я все варианты рассматриваю, дело не в сложности и в мастерстве написанного, дело в том, что посдледний раз на Паскале я что то писал лет так 10 назад... Мозг за это время начал думать совсем другими категориями и образами.
За PERL собираюсь взяться серьезно (пока потихоньку, времени нет), так что вопросов еще буду задавать много.
Цитата(nitr @  31.3.2007,  17:58 Найти цитируемый пост)
у тебя ООП подход?

Без понятия  smile

Добавлено через 4 минуты и 16 секунд
Цитата(Zuzu @  3.4.2007,  13:21 Найти цитируемый пост)
Рекомендую посмотреть какой-нибудь "шаблонизатор", например HTML::Template

Спасибо, посмотрю...
Цитата(Zuzu @  3.4.2007,  13:21 Найти цитируемый пост)
 Сформировать HTML "вручную" и вывести его 

Это все понятно... не в разметке вопрос, я имею ввиду что мне нужно поставить в разметку, что бы пользователь загрузив страницу выполнил сценарий... Инклюд?


--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
nitr
Дата 12.4.2007, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Str!pe
Цитата(Str!pe @  11.4.2007,  23:44 Найти цитируемый пост)
Ого! Тут драка идет за то что бы новичкам помогать? 

думаю неважно smile

Цитата(Str!pe @  11.4.2007,  23:44 Найти цитируемый пост)
Инклюд?

Вы в пхп или в перл? smile

все ответы уже даны всеми smile на ваш ТОПИК

Добавлено через 1 минуту и 22 секунды
это я к тому, что для нового вопроса новый пост ;)


--------------------
PM   Вверх
Str!pe
Дата 12.4.2007, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: нет
Всего: 152



Цитата(nitr @  12.4.2007,  00:15 Найти цитируемый пост)
думаю неважно

Ну почему же... важно.
Цитата(nitr @  12.4.2007,  00:15 Найти цитируемый пост)
Вы в пхп или в перл?

В SSI
Цитата(nitr @  12.4.2007,  00:15 Найти цитируемый пост)
все ответы уже даны всеми  на ваш ТОПИК

Так зачем же вы мне тогда отвечаете?
Цитата(nitr @  12.4.2007,  00:15 Найти цитируемый пост)
это я к тому, что для нового вопроса новый пост

Вопрос старый, я не все понял.


--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
nitr
Дата 12.4.2007, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Цитата(Str!pe @  12.4.2007,  00:38 Найти цитируемый пост)
Цитата(nitr @  12.4.2007,  00:15 )думаю неважноНу почему же... важно.

разводим демагогию? smile думаю не стоит.

Цитата(Str!pe @  12.4.2007,  00:38 Найти цитируемый пост)
Цитата(nitr @  12.4.2007,  00:15 )Вы в пхп или в перл?В SSI

Хорошее уточнее, korob2001 уже давал полное разъяснение по таким вопросам, посмотрите поиском ;)

Цитата(Str!pe @  12.4.2007,  00:38 Найти цитируемый пост)
Так зачем же вы мне тогда отвечаете?

Выяснить - почему пост открыт, и что тут было неясного smile


--------------------
PM   Вверх
korob2001
Дата 12.4.2007, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Цитата(Str!pe @  11.4.2007,  21:38 Найти цитируемый пост)
В SSI

Так с этого и стоило начать.

Файл: /cgi-bin/dat.pl
Код

#!/usr/bin/perl -w
use strict;

my @month = (
    "Января",  "Февраля", "Марта",
    "Апреля",  "Мая",     "Июня",
    "Июля",    "Августа", "Сентября",
    "Октября", "Ноября",  "Декабря"
);

my($d,$m,$y) = (localtime)[3..5];
$y += 1900;

print "Content-type: text/html\n\n";

# Формируем строку и извращаемся над ней
print <<"HTML";
<b>
   <font color="#aa0000">$d</font>
   <span style="color: #0000cc">$month[$m]</span>
   <i style="text-decoration: underline">$y</i> года
</b>
HTML


Теперь инклюдим вывод этой программы через SSI.
Файл: /date_test.shtml
Код

<html>
    <head>
        <title>Date test</title>
    </head>
    <body>
        <center><!--#include virtual="/cgi-bin/dat.pl"--></center>
    </body>
</html>

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

Думаю принцип понятен.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Str!pe
Дата 12.4.2007, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


профиль удален
****


Профиль
Группа: Участник
Сообщений: 2426
Регистрация: 12.6.2005
Где: На земле.

Репутация: нет
Всего: 152



Цитата(nitr @  12.4.2007,  01:00 Найти цитируемый пост)
думаю не стоит.

Ну раз так, в этом случае прошу вас больше на мои посты не отвечать. Это не демагогия, за демагогией прошу во "флейм". Спасибо за внимание, досвидания nitr,.

Цитата(korob2001 @  12.4.2007,  01:56 Найти цитируемый пост)
Файл: /date_test.shtml

Рыдал... я расширение .HTML вместо .SHTML ставил...   smile 

korob2001
Спасибо! Спасибо всем кто помогал smile



--------------------
Со мной можно связаться по скайпу или по аське.
Занимаюсь продвижением сайтов - самой таргетированной рекламой.
PM MAIL ICQ Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1474 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.