Cách chuyển đổi dấu thời gian Epoch / UNIX thành ngày / giờ có thể đọc được bình thường bằng Php 7.
- Nhận thời gian kỷ nguyên hiện tại trong PHP
- Chuyển đổi từ thời đại sang ngày bình thường trong PHP
- Chuyển đổi từ ngày bình thường sang kỷ nguyên trong PHP
- Chuyển đổi múi giờ trong PHP
- Thêm năm/tháng vào một ngày trong PHP
- Bình luận
Nhận thời gian kỷ nguyên hiện tại trong PHP
Chuyển đổi từ thời đại sang ngày bình thường trong PHP
time[] // current Unix timestamp
microtime[true] // microtime returns timestamp with microseconds [param: true=float, false=string]
Chuyển đổi từ ngày bình thường sang kỷ nguyên trong PHP
Chuyển đổi múi giờ trong PHP
$epoch = 1483228800;
echo date['r', $epoch]; // output as RFC 2822 date - returns local time
echo gmdate['r', $epoch]; // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000
Thêm năm/tháng vào một ngày trong PHP
Bình luận
$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
Thời gian trả về một số nguyên với kỷ nguyên hiện tại:
Bạn có thể sử dụng mã múi giờ bên dưới [date_default_timezone_set] để chuyển múi giờ của ngày đầu vào. | 2. Sử dụng lớp DateTime. |
Trong các ví dụ trên "R" và "Y-M-D H: I: S" là các định dạng ngày PHP, các ví dụ khác: | Định dạng |
Đầu ra | r |
Thứ tư, ngày 15 tháng 3 năm 2017 12:00:00 +0100 [ngày RFC 2822] | c |
2017-03-15T12: 00: 00+01: 00 [ngày ISO 8601] | M/d/y |
Mar/15/2017
D-M-yConvert from human-readable date to epoch in PHP
15-03-2017
Y-M-D H: I: S & NBSP;
2017-03-15 12:00:00
echo strtotime["15 November 2017"];
// ... or ...
echo strtotime["2017/11/15"];
// ... or ...
echo strtotime["+10 days"]; // 10 days from now
Đầy đủ danh sách các tùy chọn định dạng
if [[strtotime["this is no date"]] === false] {
echo 'failed';
}
& nbsp; chuyển đổi từ ngày có thể đọc được của con người sang kỷ nguyên trong PHP
Có nhiều lựa chọn:
// object oriented
$date = new DateTime['01/15/2017']; // format: MM/DD/YYYY
echo $date->format['U'];
// or procedural
$date = date_create['01/15/2017'];
echo date_format[$date, 'U'];
1. Sử dụng 'Strtotime':
Strtotime phân tích cú pháp hầu hết các văn bản ngày tiếng Anh đến thời gian epoch/unix.
Điều quan trọng là kiểm tra xem việc chuyển đổi có thành công không:
// PHP 5.1+
date_default_timezone_set['UTC']; // optional
mktime [ $hour, $minute, $second, $month, $day, $year ];
// example: generate epoch for Jan 1, 2000 [all PHP versions]
echo mktime[0, 0, 0, 1, 1, 2000];
2. Sử dụng lớp DateTime:
Lớp DateTime PHP đẹp hơn để sử dụng:
Định dạng ngày 'U' chuyển đổi ngày thành dấu thời gian UNIX.
The PHP time zone handling takes care of daylight
saving times [list of available time zones].
Examples:
3. Sử dụng 'mktime':Convert date/time to another time zone
$TimeStr="2017-01-01 12:00:00";
$TimeZoneNameFrom="UTC";
$TimeZoneNameTo="Europe/Amsterdam";
echo date_create[$TimeStr, new DateTimeZone[$TimeZoneNameFrom]]
->setTimezone[new DateTimeZone[$TimeZoneNameTo]]->format["Y-m-d H:i:s"];
Phiên bản này là một rắc rối hơn nhưng hoạt động trên bất kỳ phiên bản PHP nào.
Thanks to Albert Scholtalbers.
Adding or subtracting years/months to a date
Đặt múi giờ của bạn
$currentDate = time[]; // get current date
echo "It is now: ".date["Y-m-d H:i:s", $currentDate]."\n ";
$date = strtotime[date["Y-m-d H:i:s", $currentDate] . " +1 year"]; // add 1 year to current date
echo "Date in epoch: ".$date."\n ";
echo "Readable date: ".date["Y-m-d H:i:s",$date]."\n ";
Sử dụng DATE_DEFAULT_TIMEZONE_SET để đặt/ghi đè múi giờ của bạn. Xử lý múi giờ PHP chăm sóc thời gian tiết kiệm ánh sáng ban ngày [danh sách các múi giờ có sẵn].
date_default_timezone_set['Europe/Amsterdam'];
date_default_timezone_set['America/New York'];
date_default_timezone_set['EST'];
date_default_timezone_set['UTC'];
& nbsp; chuyển đổi ngày/thời gian sang múi giờ khác« Epoch Converter Functions
Tôi đang sử dụng API ngay bây giờ và nó cung cấp một kỷ nguyên. Tôi đã thử mọi thứ để chuyển đổi thời gian sử dụng này cho đến nay, nhưng dường như nó không hoạt động bao gồm
$epoch = 1483228800;
echo date['r', $epoch]; // output as RFC 2822 date - returns local time
echo gmdate['r', $epoch]; // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000
8 và sau đó sử dụng chức năng $epoch = 1483228800;
echo date['r', $epoch]; // output as RFC 2822 date - returns local time
echo gmdate['r', $epoch]; // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000
9 để chuyển đổi nó.Thời gian kỷ nguyên trông giống như 1353430853299. Có cách nào để làm điều này không?
$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
0 cũng không hoạt động.Có vẻ như tất cả các bài đọc khác về thời gian kỷ nguyên là về việc thay đổi ngày thành epochtime, nhưng tôi đang tìm cách đi theo con đường khác. Bất kỳ trợ giúp nào cũng được đánh giá rất cao.
Nickhar
19.6K12 Huy hiệu vàng60 Huy hiệu bạc72 Huy hiệu đồng12 gold badges60 silver badges72 bronze badges
Đã hỏi ngày 20 tháng 11 năm 2012 lúc 16:36Nov 20, 2012 at 16:36
user1701252user1701252user1701252
1.4911 Huy hiệu vàng11 Huy hiệu bạc19 Huy hiệu đồng1 gold badge11 silver badges19 bronze badges
Đã sửa nó bằng cách sử dụng chuỗi con [$ epoch, 0, 10] và sau đó sử dụng chức năng ngày cho bất kỳ ai tự hỏi về thời gian kỷ nguyên 13 chữ số.
Đây là mã mẫu:
$epoch = 1483228800;
echo date['r', $epoch]; // output as RFC 2822 date - returns local time
echo gmdate['r', $epoch]; // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000
1
Tarik
4.05237 Huy hiệu bạc33 Huy hiệu đồng37 silver badges33 bronze badges
Đã trả lời ngày 20 tháng 11 năm 2012 lúc 16:55Nov 20, 2012 at 16:55
user1701252user1701252user1701252
1.4911 Huy hiệu vàng11 Huy hiệu bạc19 Huy hiệu đồng1 gold badge11 silver badges19 bronze badges
1
Có một vài cách khác nhau bạn có thể làm điều này.
Trước hết, những gì bạn đã có ở đó là thời gian của UNIX Epoch. [1/1/1970], điều đó làm cho mọi thứ dễ dàng hơn nhiều.
Trong PHP, hãy thử
$epoch = 1483228800;
echo date['r', $epoch]; // output as RFC 2822 date - returns local time
echo gmdate['r', $epoch]; // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000
2Để hiển thị ngày của bạn
HOẶC
Nếu bạn muốn ngày RFC232 dài:
$epoch = 1483228800;
echo date['r', $epoch]; // output as RFC 2822 date - returns local time
echo gmdate['r', $epoch]; // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000
3Đã trả lời ngày 20 tháng 11 năm 2012 lúc 16:42Nov 20, 2012 at 16:42
5
$epoch = 1483228800;
echo date['r', $epoch]; // output as RFC 2822 date - returns local time
echo gmdate['r', $epoch]; // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000
4
SPHINXXX
11.8K4 Huy hiệu vàng 50 Huy hiệu bạc79 Huy hiệu đồng4 gold badges50 silver badges79 bronze badges
Đã trả lời ngày 20 tháng 11 năm 2012 lúc 16:40Nov 20, 2012 at 16:40
RawKoderawKodeRawkode
21.7K5 Huy hiệu vàng38 Huy hiệu bạc45 Huy hiệu Đồng5 gold badges38 silver badges45 bronze badges
1
FYI, API gửi Epoch sử dụng dữ liệu JSON với millisecondes để tương thích với các trình duyệt web.
Tôi không biết tại sao PHP cần loại bỏ millisecondes, vì đây là tiêu chuẩn cho mọi trình duyệt web.
Vì vậy, bạn có thể sử dụng 10 hoặc / 1000 bên trái [tốt hơn là chia cho 1000 nếu bạn không muốn gặp rắc rối vào ngày 20 tháng 11 năm 2286 !!!]
Đã trả lời ngày 7 tháng 11 năm 2013 lúc 13:56Nov 7, 2013 at 13:56
Foxontherockfoxontherockfoxontherock
1.7461 Huy hiệu vàng13 Huy hiệu bạc15 Huy hiệu đồng1 gold badge13 silver badges15 bronze badges
Bạn chỉ cần chọn chỉ 10 chữ số từ định dạng Epochepoch format
$epoch = 1483228800;
echo date['r', $epoch]; // output as RFC 2822 date - returns local time
echo gmdate['r', $epoch]; // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000
5đầu ra sẽ giống như:
2021-05-16 15:02:25
Đã trả lời ngày 16 tháng 5 năm 2021 lúc 10:00May 16, 2021 at 10:00
Điều này hoạt động khi bạn chia cho 1000:
$epoch = 1483228800;
echo date['r', $epoch]; // output as RFC 2822 date - returns local time
echo gmdate['r', $epoch]; // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000
6Trong ví dụ này, bạn sẽ nhận được
$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
1, vì vậy bạn phải làm tròn nó để loại bỏ phần phân số của số. Bạn cũng có thể sử dụng sàn nếu bạn không muốn nó tròn.
Máy đánh chữ
7411 Huy hiệu vàng11 Huy hiệu bạc24 Huy hiệu đồng1 gold badge11 silver badges24 bronze badges
Đã trả lời ngày 27 tháng 5 năm 2020 lúc 20:07May 27, 2020 at 20:07