MySQL, PHP: Formatting dates and times: Strings and SQL | lynda.com

이 영화에서 우리는 날짜와 시간을 계속 살펴볼 것입니다 마지막 영화에서 유닉스 타임 스탬프를 만드는 법을 보았습니다

이 영화에서 저는 우리가 유닉스 타임 스탬프를 어떻게 포맷 할 수 있는지 살펴 보자 우리가 그렇게 할 수있는 두 가지 기능이 있습니다 첫번째 함수는 날짜이고 두 번째는 strf 시간입니다 자, 발음 할 수 있습니다 그 문자열을 시간, 문자열 형식 시간,하지만 생각은 우리가 타임 스탬프를 문자열로 변환합니다

두 경우 모두 우리는 Unix 타임 스탬프를 11 월과 같이 사람이 읽을 수있는 형식으로 포맷합니다 2005 년 13 월 13 일, 1970 년대 이래로 몇 초가 걸렸습니다 그다지 사용자 친화적이지 않습니다 이 함수들 각각은 두 번째 인수로 타임 스탬프를 사용합니다 그 타임 스탬프는 단순하다

유닉스 타임 스탬프, 우리가 만든 모든 타임 스탬프를 가져 와서 그 두 번째 주장 까다로운 부분이고 우리가하는 형식입니다 더 많은 것을 배워야 할 것입니다 사실, 기능은 동일하게 보일 수 있습니다 그러나 그것들을 구별하는 것은 형식입니다

각 함수에는 고유 한 형식 규칙이 있습니다 먼저 날짜를 살펴 보겠습니다 서식을 표시하는 가장 쉬운 방법 날짜에 대한 옵션은 날짜에 대한 http://wwwphpnet 페이지를 살펴 보는 것입니다

가기 http://wwwphpnet으로 이동하여 날짜를 검색하면이 페이지가 표시됩니다 다음은 출력 문자열에 대한 다양한 형식입니다 아래로 스크롤

여기에 d, D, j 등의 형식 문자가 있음을 알 수 있습니다 각 코드가하는 일 예를 들어, d는 해당 월의 일이며, 두 자리 01 ~ 31과 같은 0으로 시작됩니다 j도 한 달을 나타내지 만 앞에 오는 0이없는 경우 1 – 31입니다 D는 하루의 텍스트 표현이며, 월요일부터 일요일까지의 세 글자, 수요일의 경우 수요일 예를 들어

이제 페이지에서 조금 더 아래로 스크롤하여 이러한 문자열이 어떻게 보이는지 확인할 수 있습니다 익숙한 형식은 단순한 문자열이지만 형식 문자는 날짜의 각 부분에 대한 자리 표시 자 date 함수가 호출되면, 형식 코드 자리 표시자를 실제 데이터로 대체합니다 예를 들어,이 형식 문자열은 바로 위의 줄을 반환합니다

2005 년 8 월 8 일 월요일과 그 다음 시간 이제이 예제에서 그들은지나 가지 않습니다 타임 스탬프에서 현재 시간을 기본값으로 사용합니다 그러나 아래 예제에서, 두 번째 인수로 타임 스탬프에서 전달되는 것을 볼 수 있습니다 그들은 지어 준다

timestamp는 mktime을 사용하여 그것을 전달합니다 또한 두 번째 형식 코드에서 사용하는 형식 코드는 단순히 L이고 그게 전부입니다 우리가 가서 L을 보면, 그것이 무엇을하는지 보게 될 것입니다 그것은 요일을 반환합니다 그래서 이것은 요일을 알려줍니다

2000 년 7 월 1 일입니다 그것은 좋은 작은 트릭입니다 뿐만 아니라 우리는 형식을 인간이 읽을 수있는 무언가로 된 것입니다 실제로 우리는 달력에 대한 정보도 제공합니다 지금 개인적으로, 나는 날짜를 사용하지 않고 나는 문자열 대신 시간을 사용하는 것이 좋습니다

내가 그것을 좋아하는 이유 더 나은 것은 유닉스 오픈 스탠다드의 일부이며 많은 프로그래밍에서 사용됩니다 PHP 이외의 언어를 지원하며 외국어로 날짜 형식을 지원합니다 게다가 시간 형식 코드의 문자열을 살펴 보겠습니다 그들이 어떻게 날짜와 다른지

예를 들어 % d를 보면 % 무엇보다도 앞에 %가 있다는 것을 알 수 있습니다 %를 사용하면 명확하게 나타납니다 이것은 형식 코드입니다 그래서 시간의 모든 문자열은 다음으로 갈 것입니다 코드 앞에 % 기호를 입력하십시오

따라서 본질적으로 % d은 (는) 동일한 작업을 수행합니다 d가 날짜 함수에서 그랬습니다 하지만 이제 % D을 살펴보십시오 너는 그것을 볼 것이다 이것은 다릅니다

그날의 3 자리 코드 대신 일주일에 월, 일, 년의 단축키가 될 것입니다 그들 사이에 슬래시가 있습니다 대신 % a를 여기 보면 그것이 단축 된 요일 이름임을 확인하십시오 그래서 그것이 우리가 똑같이 얻는 방법입니다 우리가 이전에 가진 기능

그래서 그들 중 일부는 똑같을 것입니다 % m (예 : 여기 아래), 10 진수로 나타낸 월 그것은 동일합니다 그러나 % M과 다른 것들은 그렇지 않습니다 그래서 많은 차이가 있습니다

그래서 너 정말 각각의 코드 집합을 별도로 배워야 만합니다 그래서 당신이해야한다고 생각합니다 하나를 고르고 그걸로 붙어서, 나는 그 끈으로 시간을 가져갈 것을 권한다 (strftime) 이제 분명히 여기에 코드 목록이 있습니다

시간 문자열은 포괄적 인 목록이므로 복사 할 수 있습니다 당신이 가장 자주 사용하려고하는 것들을 내려 놓고 조금만 만들어라 컨닝 지 그러나 당신은 또한 그들과 꽤 빨리 친숙해질 것입니다 당신이 그것을 필요할 때 기억할 수 있습니다

자 이제 시도해 보겠습니다 나는 아직도 내 오래된 창문을 열어 놓았다 date_time_unix 계속 진행하고 파일> 다른 이름으로 저장을 수행하면 이 중 하나는 date_time_formatphp이고, 여기서는 포맷팅, 그런 다음 우리가 가지고있는 모든 PHP를 정리하고 새로 시작할 수 있습니다

그래서 내가 할 첫 번째 일은 바로 간단한 간단한 타임 스탬프를 현재 시간 그리고 우리는 그 방법을 바로 알 수 있습니다 그럼 만들어 보자 우리 스스로 strftime의 결과를 되풀이합니다 우리는 "오늘 날짜는" 우리의 포맷 코드를 넣자

% m 따라서 % 기호는 코드임을 알립니다 strftime을 위해, 그리고 나서 m은 그것의 숫자가 % d / % y를 갖습니다 그 다음 우리가 물론 통과해야 할 마지막 것 우리의 타임 스탬프 우리의 브라우저로 돌아가서 그거

Unix를로드하는 대신 formatphp를로드합니다 됐어 그래서 오늘 2008 년 11 월 1 일입니다 현재, 오늘은 실제로 11 월 1 일이 아닙니다

대신 나는 그 시간에 내 시스템 시계를 설정하면 내가 당신에게 뭔가를 보여줄 수 있습니다 지금, 이전에 나는 왜 내가 strftime을 date보다 좋아하는지 이유를 지적했다 strftime에는없는 한 가지 기능이 있습니다 날짜에 대한 옵션이 있습니다 한 달 또는 하루 전에 앞에 0을 남겨 둡니다

여기서 주목 해주세요 01을 얻었습니다 앞에서 말한 제로의 제로입니다 우리는 날짜를 남겨 둘 수있는 옵션을 유지했고, 단지 2008 년 11 월 1 일 우리가 1 월에 대해 말하면 똑같은 것이 사실입니다 string 시간은 01로 인쇄되지만, 날짜에는 0을 시작합니다

우리가 얻고 싶어하는 많은 시간들 그 선행 제로를 제거하십시오 그래서 저는 여러분이 글쓰기로 어떻게 그것을 할 수 있는지 보여 드리겠습니다 너 자신 도우미 기능 해킹이 조금 있지만 효과적입니다 여기에서 우리가 할 일은 우리가이 줄을 가져 와서 우리가 여기 복사 할거야, 형식 지정을 보내는 대신 별표를 넣을 것입니다

이 두 사람 앞에서 그것들은 제로가 보여 질지도 모르는 두 곳입니다 쪽으로 그래서 우리는 우리가 0을보고 싶은 위치를 표시하는 것입니다 이 별표로 우리가하고 있습니다 이제 원하는 문자를 사용할 수 있습니다

별표는 매우 자주 사용하지 않기 때문에 선택했습니다 이런 종류의 날짜를 포맷 할 때 다른 문자를 쉽게 사용할 수 있습니다 다른 이유로 별표가 필요한 경우 자 이제 도우미 함수를 작성해 보겠습니다 strip_zeros_from_date 함수를 호출하고 $ marked_string =을 전달합니다

우리는 기본적으로 빈 문자열을 전달합니다 첫 번째 단계는 표시된 0을 제거 할 것입니다 그래서 $ no_zeros는 str _replace와 같을 것이고, string replace (str_replace)를 사용하여 모든 항목을 찾습니다 별표가 0 인 경우, 우리가 그것을 발견하면 두 가지를 제거하고 두 가지를 모두 얻습니다 거기에서

그렇다면 우리는 marked_string을 전달해야 할 것입니다 검색 할 수 있습니다 그런 다음 일단 그렇게하면 마지막 단계는 우리가 처리하고 싶지 않기 때문에 남은 점수를 제거하십시오 우리가 12 월과 같은 것을 가지고있는 경우, 앞에 0이없는 경우, 그래서 우리는 아직 별표를 쓰지 않았기 때문에 거기에 앉아있을 것입니다 제거되었습니다

그래서 우리는 $ cleaned_string이라는 또 다른 단계를 수행 할 것입니다 =, 우리는 또 다른 str_replace를 할 것입니다 하지만 이번에는 아직 별표가없는 별표가 있으면 찾으십시오 아무것도, 우리는 그것을 no_zeros 문자열로 할 것입니다 마지막으로, 청소 된 가치

그래서 우리가 간다 이제 우리는 우리를 위해 일해야합니다 이 strftime을 함수 아래로 이동시켜 그것은 정의되어 있습니다 우리는 그 모든 것을 다룰 것입니다 우리는 거기에 갈

악 그것을 저장하고, 다시 돌아 오자 그것을 시도하자 우리가 있습니다 그것은 거기에 br 태그를 넣지 않았지만 당신은 이것을 볼 수 있습니다 이 01은 01을 제거했습니다 따라서 대부분의 PHP 프로젝트를 진행하고 있습니다

strftime을 사용하는 데 도움이되는이 함수에 넣으십시오 그 0을 제거 할 수 있고, 또한 당신에게 도움이 될 것이라고 생각합니다 가장 마지막으로 여기서 설명하고자하는 것은 문자열 형식을 지정할 수도 있다는 것입니다 MySQL에 저장하기에 적합합니다 많은 사람들이 어떻게하는지 궁금해합니다

변환 Unix 타임 스탬프를 MySQL에 전달하고 싶지는 않습니다 너는 원한다 MySQL이 이해할 수있는 형식으로 포맷하십시오 다행히도 매우 쉽습니다

멋진 휴식을 위해서 에코 "<hr />"를하자 그러면 우리는 새로운 것을 할 것이다 $ dt = 시간; 날짜 시간 동안 dt가됩니다 그러면 우리가 얻고 자하는 것은 $ mysql_ datetime입니다 우리가 할 방법은 strftime 함수를 사용하는 것입니다

다음 서식 지정 코드를 입력하십시오 % Y, 그 해는 네 자리 숫자 모두, % m, % d, 공백, 시간당 % H, 분, % S로 표시됩니다 우리가 간다 그리고 당연히 우리는 통과하기를 원할 것이다 그 때 우리는 단지 함께 일하고있었습니다

그래서 우리는 타임 스탬프를 전달할 수 있습니다 우리는이 형식으로 출력 할 것입니다 이것은 mysql_datetime에 들어갑니다 물론, 우리가 그 결과를보고 싶다면, 우리는 단지 그것에 에코를해야합니다 우리는 거기에 갈

그래서 우리는 돌아올 것입니다 그게 MySQL이 이해할 수있는 형식 그러니 그 서식을 적어 두십시오 코드 MySQL과 함께 사용하기에 편리하게 유지해야합니다

하지만 너도 여기에이 사본을 만들어서 결과가 무엇인지 보여 주기만하면됩니다 날짜 나 다른 시스템을 사용하게 될 경우에 대비하여 MySQL가 날짜, 시간 필드에 대해 원하는 형식 이제 날짜 필드가있는 경우 그 날짜의 일부가 될 것입니다, 그러나 이것이 사용할 형식입니다 이제 우리는 날짜와 시간을 다루고 형식을 배웠으니, 우리는 계속 전진 할 준비가되어 있습니다 다음 영화에서는 서버와 요청을 살펴볼 것입니다

변수