function GetDAY($d,$m,$w,$y) {
$return = ''; $get_d = date('j'); $get_w = date('w'); $get_m = date('m'); $get_y = date('Y');
if ($d == 1) $return .= $get_d.' ';
if ($m == 1) {
$arr_month = array(1=>"января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря");
foreach ($arr_month as $key => $mm) if ($key == $get_m) $month = $mm.', ';
$return .= $month;
}
if ($w == 1) {
$arr_week = array("воскресенье","понедельник","вторник","среда","четверг","пятница","суббота");
foreach ($arr_week as $key => $we) if ($key == $get_w) $week = $we.' ';
$return .= $week;
}
if ($y == 1) $return .= $get_y.' г.';
return $return;
}
//День, месяц, неделя, год
echo GetDAY(1,1,0,1); // 2 апреля, 2011 г.
echo GetDAY(1,1,1,1); // 2 апреля, суббота 2011 г.
Спустя 6 минут, 3 секунды (2.04.2011 - 00:24) inpost написал(а):
Renden
Настройки выделить отдельно, придать стиль нормальный, вложенность = +4пробела.
Настройки выделить отдельно, придать стиль нормальный, вложенность = +4пробела.
Спустя 6 минут, 47 секунд (2.04.2011 - 00:31) inpost написал(а):
$arr_month[date("m")]; // Никаких foreach, и уж тем более забивания памяти лишними переменными.
return ($m == 1) ? $arr_month[date('m')] : date('m').' '.($w == 1) ? date('w') : '';
Спустя 3 минуты, 6 секунд (2.04.2011 - 00:34) Renden написал(а):
inpost
Во, я тоже думал что foreach тут не нужен, но что-то не допер как сделать, спс.
Во, я тоже думал что foreach тут не нужен, но что-то не допер как сделать, спс.
Спустя 11 минут, 38 секунд (2.04.2011 - 00:45) inpost написал(а):
Renden
Переписывай и снова выставляй тут функцию. Поругаю дальше, но зато будет классная функция после
Переписывай и снова выставляй тут функцию. Поругаю дальше, но зато будет классная функция после

Спустя 6 минут, 51 секунда (2.04.2011 - 00:52) Renden написал(а):
inpost
Я вот только 1 не понял, если взять твою строку то получается:
return если ? вернуть месяц : иначе если ? вернуть неделю : '';
вот только "иначе если" (else if) не срабатывает, тут получается только else..
Надеюсь ты понял о чем я))
Я вот только 1 не понял, если взять твою строку то получается:
return если ? вернуть месяц : иначе если ? вернуть неделю : '';
вот только "иначе если" (else if) не срабатывает, тут получается только else..
Надеюсь ты понял о чем я))
Спустя 2 минуты, 38 секунд (2.04.2011 - 00:55) Snus написал(а):
У тебя формат даты меняется шоле? Я бы сделал так. Можешь не использовать, но и критиковать тут нечего.
<?php
function fuckDate($date){
$time = strtotime($date);
$arrMonth = array(0,'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
$arrWeek = array('воскресенье','понедельник','вторник','среда','четверг','пятница','суббота');
$return = date('j', $time).' ';
$return .= !empty($arrMonth[(int)date('m', $time)]) ? $arrMonth[(int)date('m', $time)].' ' : NULL;
$return .= !empty($arrWeek[date('w', $time)]) ? $arrWeek[date('w', $time)].' ' : NULL;
$return .= date('Y', $time).' г.';
return $return;
};
echo fuckDate('02.04.2011'); //SHITTIME
echo '<br />';
echo fuckDate('2011-04-02'); // UNIXTIME
?>
Спустя 2 минуты, 12 секунд (2.04.2011 - 00:57) Renden написал(а):
Snus
Круто ниче не скажешь, у мня просто задача была менять формат даты текущего дня) Но так конечно круче)
ЗЫ но так формат даты нельзя менять (допустим мне нужен только день и месяц, или месяц и год), а жаль (
Круто ниче не скажешь, у мня просто задача была менять формат даты текущего дня) Но так конечно круче)
ЗЫ но так формат даты нельзя менять (допустим мне нужен только день и месяц, или месяц и год), а жаль (
Спустя 7 минут, 53 секунды (2.04.2011 - 01:05) Xakep написал(а):
<?
// создание русской даты
$dcol=((date('w')==0)||(date('w')==6)) ? '#DD0000':'#000000';
$year=0+date('Y');
$month=0+date('m')-1;
$date=0+date('j');
$day=0+date('w');
$dayarr=array('Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота');
$daystr=$dayarr[$day];
$montharr=array('января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
$monthstr=$montharr[$month];
echo("<center><font color=$dcol>$date</font> $monthstr $year г. $daystr</font></center>");
?>
высвечивает красным ыветом число если сегодня выходной...маленька япростенькая функция, ниче лишнего
Спустя 10 минут, 22 секунды (2.04.2011 - 01:15) inpost написал(а):
Renden
Тернарный оператор выглядит так:
if ? true : false. Правильно? А теперь вложенный:
if ? (if ? true : false) : false , то есть можно бесконечную вложенность делать, только производительность при больших результатах может подкачать. Ты хочешь именно elseif, тогда if ? true : (elseif ? true : false);
Тернарный оператор выглядит так:
if ? true : false. Правильно? А теперь вложенный:
if ? (if ? true : false) : false , то есть можно бесконечную вложенность делать, только производительность при больших результатах может подкачать. Ты хочешь именно elseif, тогда if ? true : (elseif ? true : false);
Спустя 21 минута, 14 секунд (2.04.2011 - 01:37) Renden написал(а):
inpost
Тогда как-то так, но теперь еще и хочется прикрутить чтоб он дату (как у Snus) мог тоже забирать)
т.е чтоб вызов был таким например GetDAY(2010-03-25,1,1,0,1); Былоб прикольно подставлять например значение из базы заместо 2010-03-25, и при этом еще и регулировать формат написания :)
Тогда как-то так, но теперь еще и хочется прикрутить чтоб он дату (как у Snus) мог тоже забирать)
т.е чтоб вызов был таким например GetDAY(2010-03-25,1,1,0,1); Былоб прикольно подставлять например значение из базы заместо 2010-03-25, и при этом еще и регулировать формат написания :)
function GetDAY($d,$m,$w,$y) {
$arr_month = array(1=>"января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря");
$arr_month_n = array(1=>"январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь");
$arr_week = array("воскресенье","понедельник","вторник","среда","четверг","пятница","суббота");
$return = ($d == 1) ? date('j').' ' : '';
$return .= ($m == 1 && $d == 1) ? $arr_month[date('n')].' ' : (($d == 0) ? $arr_month_n[date('n')].' ' : '');
$return .= ($w == 1) ? $arr_week[date('w')].' ' : '';
$return .= ($y == 1) ? date('Y').' г.' : '';
return $return;
}
//День, месяц, неделя, год
echo GetDAY(1,1,1,1); //2 апреля суббота 2011 г.
echo GetDAY(1,1,0,1); //2 апреля 2011 г.
echo GetDAY(1,1,1,0); //2 апреля суббота
echo GetDAY(0,1,0,1); //апрель 2011 г.
Спустя 1 час, 9 минут, 2 секунды (2.04.2011 - 02:46) Snus написал(а):
Renden
Писал на горячую под градусом.
На выходе:
Писал на горячую под градусом.
<?php
// Function By Snus
function fuckDate($date=null, $d=true, $m=true, $w=true, $y=true){ // По дефолту сегодняшняя дата, показывать все параметры
$time = !empty($date) ? date('r', strtotime($date)) : date('r'); // определяем дату с рождения Христова :) Если не заполнено, то сегодняшняя дата.
$arrMonthEn = array(0,'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'); // англ. месяц
$arrMonthRus = array(0,'январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь'); // рус. месяц
$arrWeekEn = array('sun','mon','tue','wed','thu','fri','sat'); // англ. неделя
$arrWeekRus = array('воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'); // рус. неделя
$arr1 = array_merge($arrMonthEn,$arrWeekEn); // Объединяем англ. месяц + неделя
$arr2 = array_merge($arrMonthRus,$arrWeekRus); // Объединяем рус. месяц + неделя
$exp = explode(' ', str_replace($arr1, $arr2, strtolower($time))); // Тут ебанешься объяснять вам, читайте мануалы по всем ф-циям, что здесь описаны - php.net
$return = ''; // Объявляем переменную
$return .= $d ? $exp[1].' ' : NULL; // День месяца
$return .= $m ? $exp[2].' ' : NULL; // Месяц
$return .= $w ? $exp[0].' ' : NULL; // День недели
$return .= $y ? $exp[3].' ' : NULL; // Год
return !empty($return) ? $return : 'FUCK YOU, Спилберг!'; // Если ничего не объявлено, посылаем дядю Спилберга
};
// Дата, день месяца, месяц, день недели, год
echo fuckDate('02.04.2011'); //SHITTIME
echo '<br />';
echo fuckDate('2011-04-02'); // UNIXTIME
echo '<br />';
echo fuckDate(); // WTF?!
echo '<br />';
echo fuckDate('', 0,0); // WTF 2 ?!
echo '<br />';
echo fuckDate('', 1,0,0); // WTF 2 ?!
echo '<br />';
echo fuckDate('', 0,0,0,0); // WTF 2 ?!
?>
На выходе:
02 апрель суббота, 2011
02 апрель суббота, 2011
02 апрель суббота, 2011
суббота, 2011
02 2011
FUCK YOU, Спилберг!
Спустя 3 часа, 4 секунды (2.04.2011 - 05:46) twin написал(а):
Вчера по поисковому запросу попал на какой то форум. А там русским по белому написано - 2 березня 2011 года. И я впал в ступор.... Какого нахрен еще березня? Еще дубень бы написали. Или сосень.
К чему это я. А к тому, что такой формат - 2 апреля 2011 г - удобен далеко не всем. А вот такой 2011-04-02 даже китаец поймет.
К чему это я. А к тому, что такой формат - 2 апреля 2011 г - удобен далеко не всем. А вот такой 2011-04-02 даже китаец поймет.
Спустя 6 минут, 11 секунд (2.04.2011 - 05:52) inpost написал(а):
twin
как ты мило отписался об украинском языке... а там точно "года", а не "року"?
И если уж брать такую запись, то 2011-04-02 - американский стиль, а советский: 02-04-2011
как ты мило отписался об украинском языке... а там точно "года", а не "року"?
И если уж брать такую запись, то 2011-04-02 - американский стиль, а советский: 02-04-2011
Спустя 8 минут, 45 секунд (2.04.2011 - 06:01) twin написал(а):
Это не американский, а азиатский "стиль". Самый рациональный. По уменьшению. Год-месяц-день. Американский такой - месяц-день-год. А день-месяц-год, это европейский, если мне память не изменяет.
В лихие 90-е годы немало американцев полегло, когда наши ушлые братки эту неоднозначность чухнули. И подписывали хитрые контракты, которые было невозможно выполнить, так как это 02-03-1990 на поверку оказывалось не 3 февраля, а 2 марта.
Так что мова тут не причем. Тут важно то, что по интернету не только русские или украинцы шарятся. А значит нужно стараться делать удобно всем. А мне "березня" совсем неудобно. Как и "апреля" может неудобно киргизу к примеру или еще кому.
В лихие 90-е годы немало американцев полегло, когда наши ушлые братки эту неоднозначность чухнули. И подписывали хитрые контракты, которые было невозможно выполнить, так как это 02-03-1990 на поверку оказывалось не 3 февраля, а 2 марта.
Так что мова тут не причем. Тут важно то, что по интернету не только русские или украинцы шарятся. А значит нужно стараться делать удобно всем. А мне "березня" совсем неудобно. Как и "апреля" может неудобно киргизу к примеру или еще кому.