PHP로 1 주일을 보냅니 까?
PHPPHP로 1 주일을 보냅니 까?
MM-dd-yyyy 형식의 날짜가 주어지면 누군가가 내가 그주의 첫날을 갖도록 도울 수 있습니까?
해결법
-
==============================
1.여기 제가 사용하고있는 것이 있습니다 ...
여기 제가 사용하고있는 것이 있습니다 ...
$day = date('w'); $week_start = date('m-d-Y', strtotime('-'.$day.' days')); $week_end = date('m-d-Y', strtotime('+'.(6-$day).' days'));
$ day에는 요일을 나타내는 0에서 6까지의 숫자가 포함됩니다 (일요일 = 0, 월요일 = 1 등). $ week_start에는 현재주의 일요일 날짜가 mm-dd-yyyy로 포함됩니다. $ week_end에는 이번주의 토요일 날짜가 mm-dd-yyyy로 포함됩니다.
-
==============================
2.
strtotime('this week', time());
시간을 교체하십시오 (). 다음 일요일 / 마지막 월요일 방법은 현재 날짜가 일요일 / 월요일 일 때 작동하지 않습니다.
-
==============================
3.strtotime 함수를 사용하는 것은 매우 간단합니다 :
strtotime 함수를 사용하는 것은 매우 간단합니다 :
echo date("Y-m-d", strtotime('monday this week')), "\n"; echo date("Y-m-d", strtotime('sunday this week')), "\n";
PHP 버전에서 약간 다릅니다 :
2015-03-16 2015-03-22
2015-03-23 2015-03-22
2015-03-30 2015-03-29
이번 주 같은 상대적인 설명은 그들 자신의 맥락을 가지고있다. 다음은 월요일 또는 일요일 인 이번 주 및 월요일의 출력을 보여줍니다.
$date = '2015-03-16'; // monday echo date("Y-m-d", strtotime('monday this week', strtotime($date))), "\n"; echo date("Y-m-d", strtotime('sunday this week', strtotime($date))), "\n"; $date = '2015-03-22'; // sunday echo date("Y-m-d", strtotime('monday this week', strtotime($date))), "\n"; echo date("Y-m-d", strtotime('sunday this week', strtotime($date))), "\n";
PHP 버전에서 조금 다릅니다.
2015-03-16 2015-03-22 2015-03-23 2015-03-29
2015-03-16 2015-03-22 2015-03-23 2015-03-22
2015-03-23 2015-03-22 2015-03-23 2015-03-29
2015-03-23 2015-03-29 2015-03-30 2015-03-29
-
==============================
4.간단하게 유지하십시오.
간단하게 유지하십시오.
<?php $dateTime = new \DateTime('2012-05-14'); $monday = clone $dateTime->modify(('Sunday' == $dateTime->format('l')) ? 'Monday last week' : 'Monday this week'); $sunday = clone $dateTime->modify('Sunday this week'); ?>
출처 : PHP 매뉴얼
-
==============================
5.
$givenday = date("w", mktime(0, 0, 0, MM, dd, yyyy));
이렇게하면 주어진 날짜 자체의 요일 (0 = 일요일 및 6 = 토요일)이 제공됩니다. 거기에서 원하는 날짜로 거꾸로 계산할 수 있습니다.
-
==============================
6.그것이 가치있는 일이라면, 일관성있는 기준 틀을 결정할 때 strtotime의 우스꽝스러운 행동의 붕괴가 있습니다 :
그것이 가치있는 일이라면, 일관성있는 기준 틀을 결정할 때 strtotime의 우스꽝스러운 행동의 붕괴가 있습니다 :
http://gamereplays.org/reference/strtotime.php
기본적으로이 문자열 만 신뢰할 수있는 동일한 날짜를주게됩니다. 요일에 관계없이 현재 전화를 걸 때 다음과 같습니다.
strtotime("next monday"); strtotime("this sunday"); strtotime("last sunday");
-
==============================
7.이 질문에는 좋은 DateTime 응답이 필요합니다.
이 질문에는 좋은 DateTime 응답이 필요합니다.
function firstDayOfWeek($date) { $day = DateTime::createFromFormat('m-d-Y', $date); $day->setISODate((int)$day->format('o'), (int)$day->format('W'), 1); return $day->format('m-d-Y'); } var_dump(firstDayOfWeek('06-13-2013'));
산출:-
string '06-10-2013' (length=10)
이것은 연도 경계와 윤년을 다룰 것입니다.
-
==============================
8.다음 코드는 사용자 정의 날짜와 함께 작동하며 원하는 날짜 형식을 사용합니다.
다음 코드는 사용자 정의 날짜와 함께 작동하며 원하는 날짜 형식을 사용합니다.
$custom_date = strtotime( date('d-m-Y', strtotime('31-07-2012')) ); $week_start = date('d-m-Y', strtotime('this week last monday', $custom_date)); $week_end = date('d-m-Y', strtotime('this week next sunday', $custom_date)); echo '<br>Start: '. $week_start; echo '<br>End: '. $week_end;
나는 PHP 5.2.17로 코드를 테스트했다. 결과 :
Start: 30-07-2012 End: 05-08-2012
-
==============================
9.이건 어때?
이건 어때?
$first_day_of_week = date('m-d-Y', strtotime('Last Monday', time())); $last_day_of_week = date('m-d-Y', strtotime('Next Sunday', time()));
-
==============================
10.일주일의 첫 번째 날을 월요일로 가정하면 다음과 같이 작동합니다.
일주일의 첫 번째 날을 월요일로 가정하면 다음과 같이 작동합니다.
echo date("M-d-y", strtotime('last monday', strtotime('next week', time())));
-
==============================
11.여기에 나는 주일의 마지막 날로 일요일과 토요일로 일요일을 고려하고 있습니다.
여기에 나는 주일의 마지막 날로 일요일과 토요일로 일요일을 고려하고 있습니다.
$m = strtotime('06-08-2012'); $today = date('l', $m); $custom_date = strtotime( date('d-m-Y', $m) ); if ($today == 'Sunday') { $week_start = date("d-m-Y", $m); } else { $week_start = date('d-m-Y', strtotime('this week last sunday', $custom_date)); } if ($today == 'Saturday') { $week_end = date("d-m-Y", $m); } else { $week_end = date('d-m-Y', strtotime('this week next saturday', $custom_date)); } echo '<br>Start: '. $week_start; echo '<br>End: '. $week_end;
출력 :
시작 : 05-08-2012 끝 : 11-08-2012
-
==============================
12.이것은 내가 어떤 날짜에서 첫 번째와 마지막 날을 잡기 위해 사용하고있는 것입니다. 이 경우 월요일은 그주의 첫날입니다 ...
이것은 내가 어떤 날짜에서 첫 번째와 마지막 날을 잡기 위해 사용하고있는 것입니다. 이 경우 월요일은 그주의 첫날입니다 ...
$date = date('Y-m-d') // you can put any date you want $nbDay = date('N', strtotime($date)); $monday = new DateTime($date); $sunday = new DateTime($date); $monday->modify('-'.($nbDay-1).' days'); $sunday->modify('+'.(7-$nbDay).' days');
-
==============================
13.이건 어때?
이건 어때?
$day_of_week = date('N', strtotime($string_date)); $week_first_day = date('Y-m-d', strtotime($string_date . " - " . ($day_of_week - 1) . " days")); $week_last_day = date('Y-m-d', strtotime($string_date . " + " . (7 - $day_of_week) . " days"));
-
==============================
14.이 시도:
이 시도:
function week_start_date($wk_num, $yr, $first = 1, $format = 'F d, Y') { $wk_ts = strtotime('+' . $wk_num . ' weeks', strtotime($yr . '0101')); $mon_ts = strtotime('-' . date('w', $wk_ts) + $first . ' days', $wk_ts); return date($format, $mon_ts); } $sStartDate = week_start_date($week_number, $year); $sEndDate = date('F d, Y', strtotime('+6 days', strtotime($sStartDate)));
(이 포럼 스레드에서)
-
==============================
15.이것은 내가 찾은 가장 짧고 가장 읽기 쉬운 솔루션입니다.
이것은 내가 찾은 가장 짧고 가장 읽기 쉬운 솔루션입니다.
<?php $weekstart = strtotime('monday this week'); $weekstop = strtotime('sunday this week 23:59:59'); //echo date('d.m.Y H:i:s', $weekstart) .' - '. date('d.m.Y H:i:s', $weekstop); ?>
strtotime은 새 DateTime () -> getTimestamp ()보다 빠릅니다.
-
==============================
16.단지 날짜를 사용하십시오 ($ format, strtotime ($ date, 'LAST SUNDAY + 1 DAY'));
단지 날짜를 사용하십시오 ($ format, strtotime ($ date, 'LAST SUNDAY + 1 DAY'));
-
==============================
17.PHP 5.3 이전 버전의 함수를 사용하면 주어진 날짜의 첫 번째 요일을 제공합니다 (이 경우 - 2013-02-03 일요일).
PHP 5.3 이전 버전의 함수를 사용하면 주어진 날짜의 첫 번째 요일을 제공합니다 (이 경우 - 2013-02-03 일요일).
<?php function startOfWeek($aDate){ $d=strtotime($aDate); return strtotime(date('Y-m-d',$d).' - '.date("w",$d).' days'); } echo(date('Y-m-d',startOfWeek("2013-02-07")).' '); ?>
-
==============================
18.
$today_day = date('D'); //Or add your own date $start_of_week = date('Ymd'); $end_of_week = date('Ymd'); if($today_day != "Mon") $start_of_week = date('Ymd', strtotime("last monday")); if($today_day != "Sun") $end_of_week = date('Ymd', strtotime("next sunday"));
-
==============================
19.
$monday = date('d-m-Y',strtotime('last monday',strtotime('next monday',strtotime($date))));
다음달 월요일에 먼저 다음 월요일의 '지난 월요일'을 얻어야합니다. 따라서 주어진 날짜가 월요일 인 경우 지난 주 월요일과 동일한 날짜를 반환합니다.
-
==============================
20.월요일이 시작되기를 원하는 경우 다음과 같이하십시오.
월요일이 시작되기를 원하는 경우 다음과 같이하십시오.
$date = '2015-10-12'; $day = date('N', strtotime($date)); $week_start = date('Y-m-d', strtotime('-'.($day-1).' days', strtotime($date))); $week_end = date('Y-m-d', strtotime('+'.(7-$day).' days', strtotime($date)));
-
==============================
21.strptime ()을 사용하여 날짜를 구문 분석하고 결과에 date ()를 사용합니다.
strptime ()을 사용하여 날짜를 구문 분석하고 결과에 date ()를 사용합니다.
date('N', strptime('%m-%d-%g', $dateString));
-
==============================
22.
<?php /* PHP 5.3.0 */ date_default_timezone_set('America/Denver'); //Set apprpriate timezone $start_date = strtotime('2009-12-15'); //Set start date //Today's date if $start_date is a Sunday, otherwise date of previous Sunday $today_or_previous_sunday = mktime(0, 0, 0, date('m', $start_date), date('d', $start_date), date('Y', $start_date)) - ((date("w", $start_date) ==0) ? 0 : (86400 * date("w", $start_date))); //prints 12-13-2009 (month-day-year) echo date('m-d-Y', $today_or_previous_sunday); ?>
(참고 : 질문에 MM, dd 및 yyyy는 표준 php 날짜 형식 구문이 아닙니다. 의미가 무엇인지 확신 할 수 없으므로 ISO 시작일 및 월 날짜를 $ start_date로 설정합니다)
-
==============================
23.그것을하는 또 다른 방법 ....
그것을하는 또 다른 방법 ....
$year = '2014'; $month = '02'; $day = '26'; $date = DateTime::createFromFormat('Y-m-d H:i:s', $year . '-' . $month . '-' . $day . '00:00:00'); $day = date('w', $date->getTimestamp()); // 0=Sunday 6=Saturday if($day!=0){ $newdate = $date->getTimestamp() - $day * 86400; //86400 seconds in a day // Look for DST change if($old = date('I', $date->getTimestamp()) != $new = date('I', $newdate)){ if($old == 0){ $newdate -= 3600; //3600 seconds in an hour } else { $newdate += 3600; } } $date->setTimestamp($newdate); } echo $date->format('D Y-m-d H:i:s');
-
==============================
24.이번 주 첫날 (월요일)을 얻는 가장 쉬운 방법은 다음과 같습니다.
이번 주 첫날 (월요일)을 얻는 가장 쉬운 방법은 다음과 같습니다.
strtotime("next Monday") - 604800;
여기서 604800은 1 주 (60 * 60 * 24 * 7)의 초 수입니다.
이 코드는 다음 월요일에 가져와 1 주일 동안 줄입니다. 이 코드는 어느 요일에도 잘 작동합니다. 오늘이 월요일이라해도.
-
==============================
25.나는 나의 시간대가 호주이고 strtotime ()이 영국 날짜를 싫어한다는 점을 감안할 때 상당히 실망 스럽다.
나는 나의 시간대가 호주이고 strtotime ()이 영국 날짜를 싫어한다는 점을 감안할 때 상당히 실망 스럽다.
현재 날짜가 일요일이면 strtotime ( "오늘 주 월요일")은 그 다음 날을 반환합니다.
이것을 극복하기 위해서 :
$startOfWeek = (date('l') == 'Monday') ? date('d/m/Y 00:00') : date('d/m/Y', strtotime("last monday 00:00")); $endOfWeek = (date('l') == 'Sunday') ? date('d/m/Y 23:59:59') : date('d/m/Y', strtotime("sunday 23:59:59"));
-
==============================
26.이렇게하는 현명한 방법은 PHP가 시간대 차이와 일광 절약 시간 (DST)을 처리하도록하는 것입니다. 어떻게하는지 보여 드리죠.
이렇게하는 현명한 방법은 PHP가 시간대 차이와 일광 절약 시간 (DST)을 처리하도록하는 것입니다. 어떻게하는지 보여 드리죠.
이 함수는 월요일부터 금요일까지의 모든 날을 생성합니다 (작업 주일을 생성하는 데 편리합니다).
class DateTimeUtilities { public static function getPeriodFromMondayUntilFriday($offset = 'now') { $now = new \DateTimeImmutable($offset, new \DateTimeZone('UTC')); $today = $now->setTime(0, 0, 1); $daysFromMonday = $today->format('N') - 1; $monday = $today->sub(new \DateInterval(sprintf('P%dD', $daysFromMonday))); $saturday = $monday->add(new \DateInterval('P5D')); return new \DatePeriod($monday, new \DateInterval('P1D'), $saturday); } } foreach (DateTimeUtilities::getPeriodFromMondayUntilFriday() as $day) { print $day->format('c'); print PHP_EOL; }
그러면 현재 주중 월요일 - 금요일의 datetimes가 반환됩니다. 임의의 날짜에 대해서도 동일하게하려면 DateTime Utilities :: get Period FromMondayUntilFriday에 매개 변수로 날짜를 전달합니다. 따라서 :
foreach (DateTimeUtilities::getPeriodFromMondayUntilFriday('2017-01-02T15:05:21+00:00') as $day) { print $day->format('c'); print PHP_EOL; } //prints //2017-01-02T00:00:01+00:00 //2017-01-03T00:00:01+00:00 //2017-01-04T00:00:01+00:00 //2017-01-05T00:00:01+00:00 //2017-01-06T00:00:01+00:00
OP 만 질문 했으므로 월요일에만 관심이 있습니까?
$monday = DateTimeUtilities::getPeriodFromMondayUntilFriday('2017-01-02T15:05:21+00:00')->getStartDate()->format('c'); print $monday; // prints //2017-01-02T00:00:01+00:00
-
==============================
27.지난 주 첫날에 한 개의 라이너가 있고 지난 주 마지막 날에 DateTime 객체가 있습니다.
지난 주 첫날에 한 개의 라이너가 있고 지난 주 마지막 날에 DateTime 객체가 있습니다.
$firstDay = (new \DateTime())->modify(sprintf('-%d day', date('w') + 7)) ->setTime(0, 0, 0); $lastDay = (new \DateTime())->modify(sprintf('-%d day', date('w') + 1)) ->setTime(23, 59, 59);
-
==============================
28.나는이 질문에 대해 몇 번이나와 봤으며 항상 더 쉽게 또는 명확하게 날짜 기능을 사용하지 않는다는 사실에 놀랐다. DateTime 클래스를 사용하는 PHP5에 대한 내 솔루션은 다음과 같습니다.
나는이 질문에 대해 몇 번이나와 봤으며 항상 더 쉽게 또는 명확하게 날짜 기능을 사용하지 않는다는 사실에 놀랐다. DateTime 클래스를 사용하는 PHP5에 대한 내 솔루션은 다음과 같습니다.
/** * @param DateTime $date A given date * @param int $firstDay 0-6, Sun-Sat respectively * @return DateTime */ function getFirstDayOfWeek(DateTime $date, $firstDay = 0) { $offset = 7 - $firstDay; $ret = clone $date; $ret->modify(-(($date->format('w') + $offset) % 7) . 'days'); return $ret; }
원래 날짜를 변경하지 않으려면 복제해야합니다.
-
==============================
29.는 어때:
는 어때:
$date = "2013-03-18"; $searchRow = date("d.m.Y", strtotime('last monday',strtotime($date." + 1 day"))); echo "for date " .$date ." we get this monday: " ;echo $searchRow; echo '<br>';
그것의 가장 좋은 방법은 아니지만 나는 테스트를 거쳤고 만약 내가 이번 주에 내가 올바른 월요일에 도착한다면 나는 월요일에 그 월요일을 얻을 것이다.
-
==============================
30.이 솔루션이 도움이된다는 사실을 알았습니다. 이전 월요일을 얻기 위해 월요일이 아닌지 그냥 빼십시오. 저는 이전 월요일에 조정해야하는 쿼리에서 가져온 날짜로 $ lower_date를 사용하고 있습니다.
이 솔루션이 도움이된다는 사실을 알았습니다. 이전 월요일을 얻기 위해 월요일이 아닌지 그냥 빼십시오. 저는 이전 월요일에 조정해야하는 쿼리에서 가져온 날짜로 $ lower_date를 사용하고 있습니다.
//set this up to go backwards until you find monday while(date('D',strtotime($lower_date))!='Mon'){ $lower_date = date('Y-m-d', strtotime($lower_date . ' - 1 day')); //increase the upper spec }
from https://stackoverflow.com/questions/1897727/get-first-day-of-week-in-php by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
하이픈으로 연결된 이름으로이 객체 속성에 액세스하려면 어떻게합니까? (0) | 2018.09.15 |
---|---|
PHP (5.3+)에서 \ (백 슬래시)는 무엇을합니까? (0) | 2018.09.14 |
php5에서 인라인 문자열과 연결을 사용하는 속도 차이? (0) | 2018.09.14 |
명령이 완료되기를 기다리지 않고 shell_exec을 사용할 수 있습니까? (0) | 2018.09.14 |
PHP AES 암호화 / 해독 (0) | 2018.09.14 |