타임 스탬프를 읽을 수있는 날짜 / 시간 PHP로 변환


227

세션에 타임 스탬프가 저장되어 있습니다 (1299446702).

PHP에서 읽을 수있는 날짜 / 시간으로 변환하려면 어떻게해야합니까? 나는 srttotime 등을 아무 소용없이 시도했습니다.

답변:



84

strtotime은 날짜 문자열을 타임 스탬프로 만듭니다. 당신은 그 반대 인 date을 하고 싶습니다 . 일반적인 mysql 날짜 형식은 date('Y-m-d H:i:s'); 매뉴얼 페이지에서 다른 문자가 무엇을 나타내는 지 확인하십시오.

사용하려는 타임 스탬프가있는 경우 (명백히 사용)의 두 번째 인수입니다 date().


4
현재 날짜를 다음과 같이 통과 한 것이 좋습니다.echo date('m/d/Y', strtotime($current_date_variable);
cwiggo

내가 유닉스 타임 스탬프로 날짜를 변환하지만 내 데이터베이스에이 날짜 내가 이것을 시도 줘야하지만 난 여전히에 대한 구체적인 명령이없는이 이상한 것을 발견 여전히 렸기 때문에 그 날짜 표준화에 타임 스탬프를 변환 할 명령이 없습니다
마크 Roelse

64

방금 날짜와 함께 시간을 얻기 위해 H : i : s를 Rocket의 답변에 추가했습니다.

echo date('m/d/Y H:i:s', 1299446702);

출력 : 03/06/2011 16:25:02



23

PHP date()를 사용하는 경우이 코드를 사용하여 날짜, 시간, 초 등을 얻을 수 있습니다.

$time = time();               // you have 1299446702 in time
$year = $time/31556926 % 12;  // to get year
$week = $time / 604800 % 52;  // to get weeks
$hour = $time / 3600 % 24;    // to get hours
$minute = $time / 60 % 60;    // to get minutes
$second = $time % 60;         // to get seconds

12
윤년과 두번째는 어떻습니까?
Petteri Hietavirta

$year = date('Y', $time)
Ruben Kazumov

16

나는 이것이 오래된 질문이지만 검색 결과에서 높다는 것을 알고 있습니다.

누구나 타임 스탬프를 DateTime 객체로 직접 변환하려는 경우 간단한 한 줄짜리가 있습니다.

$timestamp = 1299446702;
$date = DateTime::createFromFormat('U', $timestamp);

@ sromero 주석 다음에 유닉스 타임 스탬프가 전달되면 timezone 매개 변수 (DateTime :: createFromFormat ()의 세 번째 매개 변수)가 무시되므로 아래 코드는 필요하지 않습니다.

$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored

자세한 정보 및 옵션 은 DateTime :: createFromFormat에 대한 PHP 매뉴얼을 확인하십시오 .


1
마지막 코드 줄에 대한 의견 : Jus link the manual page link : "참고 : timezone 매개 변수와 현재 시간대는 time 매개 변수에 UNIX 타임 스탬프 (예 : 946684800)가 포함되거나 시간대 (예 : 2010)를 지정하면 무시됩니다. -01-28T15 : 00 : 00 + 02 : 00). "
sromero

@sromero 당신이 옳아 요. 이 경우 시간대 매개 변수는 무시됩니다.
파스칼

14

시도 해봐.

<?php
 $timestamp=1333342365;
 echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
 ?>

8

당신은 이것을 시도 할 수 있습니다 :

   $mytimestamp = 1465298940;

   echo gmdate("m-d-Y", $mytimestamp);

출력 :

2016 년 6 월 7 일


8

사용자 정의 날짜 및 시간 형식이 필요하지 않은 경우 내장 날짜 시간 형식 상수 중 하나를 사용하는 것이 더 쉽고 오류가 적으며 읽기 쉽습니다 .

echo date(DATE_RFC822, 1368496604);

2
이것이 최고의 답변이어야합니다.
alexg

6

이거 한번 해봐:

echo date('m/d/Y H:i:s', 1541843467);

1
안녕! 이 답변은 이미 제안 된 것 같습니다. 최고 답변을 참조하십시오.
hat

4

echo date("l M j, Y",$res1['timep']);
이것은 유닉스 타임 스탬프를 요일과 함께 읽을 수있는 날짜로 변환하는 데 정말 좋습니다. 예 : 2016 년 7 월 7 일 목요일


1
비슷한 답변이 이미 게시되어 있으며 답변의 정보 플러스는 무엇입니까?
Steffen Harbich

4
echo 'Le '.date('d/m/Y', 1234567890).' &agrave; '.date('H:i:s', 1234567890);

4
$epoch = 1483228800;
$dt = new DateTime("@$epoch");  // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m-d H:i:s'); // output = 2017-01-01 00:00:00

위의 예에서 "r"및 "Ymd H : i : s"는 PHP 날짜 형식이며 다른 예는 다음과 같습니다.

포맷 출력

r              -----    Wed, 15 Mar 2017 12:00:00 +0100 (RFC 2822 date)
c              -----    2017-03-15T12:00:00+01:00 (ISO 8601 date)
M/d/Y          -----    Mar/15/2017
d-m-Y          -----    15-03-2017
Y-m-d H:i:s    -----    2017-03-15 12:00:00
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.