Chuyển đổi dấu thời gian sang ngày / giờ PHP có thể đọc được


227

Tôi có dấu thời gian được lưu trữ trong một phiên (1299446702).

Làm cách nào tôi có thể chuyển đổi nó thành ngày / giờ có thể đọc được trong PHP? Tôi đã thử srttotime, vv nhưng không có kết quả.

Câu trả lời:



84

strtotime làm cho một chuỗi ngày thành dấu thời gian. Bạn muốn làm ngược lại, đó là ngày . Định dạng ngày mys mys điển hình là date('Y-m-d H:i:s'); Kiểm tra trang thủ công để biết các chữ cái khác thể hiện điều gì.

Nếu bạn có dấu thời gian mà bạn muốn sử dụng (rõ ràng là bạn làm), đó là đối số thứ hai của date().


4
sẽ là một lưu ý tốt mà tôi đã vượt qua trong ngày hiện tại của mình như sau:echo date('m/d/Y', strtotime($current_date_variable);
cwiggo

Không có lệnh nào để chuyển đổi dấu thời gian thành tiêu chuẩn hóa thời gian của họ vì tôi đã chuyển đổi một mốc thời gian thành dấu thời gian unix nhưng trong cơ sở dữ liệu của tôi, nó vẫn là một datetime tôi sẽ thử điều này nhưng tôi vẫn thấy lạ là không có lệnh cụ thể nào cho nó
Marc Roelse

64

Tôi vừa thêm H: i: s vào câu trả lời của Rocket để có được thời gian cùng với ngày.

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

Đầu ra: 03/06/2011 16:25:02



23

Nếu bạn đang sử dụng PHP date(), bạn có thể sử dụng mã này để lấy ngày, giờ, giây, v.v.

$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
Làm thế nào về năm nhuận và thứ hai ...?
Petteri Hietavirta

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

16

Tôi biết đó là một câu hỏi cũ, nhưng nó rất cao trong kết quả tìm kiếm.

Nếu bất cứ ai muốn chuyển đổi dấu thời gian trực tiếp sang đối tượng DateTime, có một lớp lót đơn giản:

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

Theo nhận xét @sromero, tham số múi giờ (tham số thứ 3 trong DateTime :: createFromFormat ()) bị bỏ qua khi dấu thời gian unix được thông qua, do đó mã dưới đây là không cần thiết.

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

Bạn có thể kiểm tra hướng dẫn sử dụng PHP cho DateTime :: createdFromFormat để biết thêm thông tin và tùy chọn.


1
Nhận xét về dòng mã cuối cùng của bạn: theo trang hướng dẫn bạn liên kết: "Lưu ý: Tham số múi giờ và múi giờ hiện tại bị bỏ qua khi tham số thời gian chứa dấu thời gian UNIX (ví dụ: 946684800) hoặc chỉ định múi giờ (ví dụ 2010 -01-28T15: 00: 00 + 02: 00). "
sromero

@sromero Bạn có quyền. Tham số múi giờ được bỏ qua trong trường hợp này.
Pascal

14

Thử nó.

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

8

Bạn có thể thử điều này:

   $mytimestamp = 1465298940;

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

Đầu ra:

06-07-2016



6

Hãy thử cái này:

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

1
Chào bạn Có vẻ như câu trả lời này đã được đề xuất; xem câu trả lời hàng đầu

4

echo date("l M j, Y",$res1['timep']);
Điều này thực sự tốt để chuyển đổi dấu thời gian unix thành ngày có thể đọc được cùng với ngày. Ví dụ: Thứ năm ngày 7 tháng 7 năm 2016


1
Câu trả lời tương tự đã được đăng, điểm cộng của thông tin trong câu trả lời của bạn là gì?
Steffen Harbich 7/07/2016

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

Trong các ví dụ ở trên "r" và "Ymd H: i: s" là các định dạng ngày của PHP, các ví dụ khác:

Định dạng đầu ra

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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.