Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: определение дня недели

Сообщения:  [1-10]   [11-17] 

 
 автор: kazakru   (18.07.2006 в 18:24)   письмо автору
 
   для: Trianon   (18.07.2006 в 18:06)
 

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

   
 
 автор: Trianon   (18.07.2006 в 18:06)   письмо автору
 
   для: kazakru   (18.07.2006 в 18:00)
 

с помощью LIKE Вы этого не добьетесь.
тут нужен SELECT .... WHERE SUBSTRING(data, 4, 2) BETWEEN '05' AND '08'

   
 
 автор: kazakru   (18.07.2006 в 18:00)   письмо автору
 
   для: Trianon   (18.07.2006 в 17:35)
 

блин и откуда вы все это знаете? :) СЕНКС ОГРОМНЫЙ

блин пока писал еще одна проблема вылезла
вот например запрос к базе
напомню в базе хранятся даты вида
12.06.2003
14.05
23.03.1070

WHERE data LIKE '%.05%' - он выведет все даты за май месяц

а как можно сделать что бы он выдал даты за период с мая по август ( с 05 по 08 ) и при этом этот параметр нужно задать до запроса, я уж и так и так , а в результате шиш...
хотя пока писал вопрос подумал что этот запрос тоже не идеален, если запрос будет

%.10% то он выведет не только все за 10 месяц но и все даты начинающиеся на 10 типа 1037

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

   
 
 автор: Trianon   (18.07.2006 в 17:35)   письмо автору
 
   для: kazakru   (18.07.2006 в 17:08)
 

<?
function dys($n)
{
  
$m $n %10;   $u $n %100;   $w = array(' дней',' день',' дня' );
  if(
$u >=&& $u <= 20$m=0;  else if($m >= 5$m=0;  else if($m >= 2$m=2;
  return 
$w[$m];
}
for(
$i 0$i 366$i++) echo $i.dys($i).'<br>';
?>

   
 
 автор: kazakru   (18.07.2006 в 17:08)   письмо автору
 
   для: kazakru   (18.07.2006 в 14:43)
 

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

$den="дней";
if($den2==2)$den="дня";
if($den2==3)$den="дня";
if($den2==4)$den="дня";
if($den2==02)$den="дня";
if($den2==22)$den="дня";
if($den2==32)$den="дня";
if($den2==42)$den="дня";
if($den2==52)$den="дня";
if($den2==62)$den="дня";
if($den2==72)$den="дня";
if($den2==82)$den="дня";
if($den2==92)$den="дня";
if($den2==03)$den="дня";
if($den2==23)$den="дня";
if($den2==33)$den="дня";
if($den2==43)$den="дня";
if($den2==53)$den="дня";
if($den2==63)$den="дня";
if($den2==73)$den="дня";
if($den2==83)$den="дня";
if($den2==93)$den="дня";
if($den2==04)$den="дня";
if($den2==24)$den="дня";
if($den2==34)$den="дня";
if($den2==44)$den="дня";
if($den2==54)$den="дня";
if($den2==64)$den="дня";
if($den2==74)$den="дня";
if($den2==84)$den="дня";
if($den2==94)$den="дня";
if($den2==01)$den="день";
if($den2==21)$den="день";
if($den2==31)$den="день";
if($den2==41)$den="день";
if($den2==51)$den="день";
if($den2==61)$den="день";
if($den2==71)$den="день";
if($den2==81)$den="день";
if($den2==91)$den="день";
if($den2==11)$den="дней";
if($den2==12)$den="дней";
if($den2==13)$den="дней";
if($den2==14)$den="дней";

   
 
 автор: kazakru   (18.07.2006 в 14:43)   письмо автору
 
   для: Trianon   (18.07.2006 в 14:13)
 

вот что значит гуру, пойду пробовать заранее огромное спасибо, а проверка эта не нужна
у меня сделано если сечас например 8 месяц а в искомой дате месяц равно или больше 8 то год посдчталяеться этот, а если меньше то следущий.
счас все это попробую соединить )

   
 
 автор: Trianon   (18.07.2006 в 14:13)   письмо автору
 
   для: kazakru   (18.07.2006 в 13:30)
 

<?
$str 
'U5.10'//'18.07.2006'  'P2.08.2008'
@list($dd$mm$yyyy)=explode('.'$str);
if(!
$yyyy$yyyy intval(date('Y'));
$mm intval($mm); $yy intval($yyyy);
if(
is_numeric($dd)) $dd intval($dd);
else
{
    
$weekday strpos("UPVWCFS",$dd[0]);
    
$wdnum intval($dd[1]);
    
$monthstart  mktime(12,0,0,$mm1$yyyy);
    
$mswkday date('w'$monthstart);
    
$need = ((($weekday+7-$mswkday)%7)+7*($wdnum-1));
    
$need $monthstart $need *86400;
    if(
$mm != date('n'$need))
        
$need -= 7*86400;
    
$dd intval(date('j',$need));
}
echo 
"$dd.$mm.$yyyy ".date('l'mktime(12,0,0,$mm,$dd,$yyyy));
?>

Правда, этот скрипт не проверяет, прошла ли уже дата в этом году или еще нет.

   
 
 автор: kazakru   (18.07.2006 в 13:30)   письмо автору
 
   для: Trianon   (18.07.2006 в 13:15)
 

да осенний именно U5.10

или например
P2.10 Начало всемирной недели письма ( второй понедельник октября )

PS
я выше расшифровал все дни

   
 
 автор: Trianon   (18.07.2006 в 13:15)   письмо автору
 
   для: kazakru   (18.07.2006 в 12:49)
 

А осенний перевод как обозначен? U5.10 ?
Показали бы значения всех буковок. Для всех дней недели.

to cheops: в U5.03 - пятерка наверное обозначает последний день недели.

   
 
 автор: kazakru   (18.07.2006 в 13:11)   письмо автору
 
   для: cheops   (18.07.2006 в 13:06)
 

Это просто условные обозначения дня недели
U - воскресение
P - понедельник
V - вторник
W - среда
C - четверг
F - пятница
S - суббота
а цифра рядом обозначает какой по счету это будет день
тоесть
U1 - первое воскресение
U2 - второе воскресение
U3 - третье воскресение
U4 - четвертое воскресение
цифра 5 обозначает что это самое последнее, тоесть не важно 4 оно будет или 5.
Вот например U5.03 это последнее воскресение марта

   

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования