Lisa và tôi [Graham] hiện đang sống tại trung tâm đào tạo của chúng tôi ở Melksham - rất vui được gặp các cựu đại biểu ở đây - nhưng hãy kiểm tra trước khi đến. Chúng ta còn lâu mới không hoạt động - đúng hơn là tận hưởng khoảng thời gian mà chúng ta đã nghỉ hưu nhưng vẫn đủ khỏe mạnh về tinh thần và thể chất để hoạt động
Tôi cũng đang hoạt động trong nhiều lĩnh vực khác và vẫn chăm sóc rất nhiều trang web - bạn có thể tìm thấy một chỉ mục [[tại đây]]
Bạn có thể làm điều này trong một lớp lót bằng cách sử dụng các phương thức JSON nếu bạn sẵn sàng giảm một chút hiệu năng [mặc dù một số đã báo cáo rằng nó nhanh hơn so với việc lặp qua các đối tượng theo cách đệ quy - rất có thể là do PHP gọi hàm chậm]. "Nhưng tôi đã làm điều này rồi" bạn nói. Không chính xác - bạn đã sử dụng json_decode trên mảng, nhưng trước tiên bạn cần mã hóa nó bằng json_encode
Yêu cầu
Các phương thức json_encode và json_decode. Chúng được tự động đóng gói trong PHP 5. 2. 0 trở lên. Nếu bạn sử dụng bất kỳ phiên bản cũ nào thì cũng có thư viện PECL [có nghĩa là, trong trường hợp đó, bạn thực sự nên cập nhật cài đặt PHP của mình. Hỗ trợ cho 5. 1 dừng lại vào năm 2006. ]
Chúng ta phải dịch ngày từ thời khóa biểu sang định dạng dữ liệu mong muốn bằng cách sử dụng hàm ngày [dấu thời gian, 'định dạng ngày'], để có được kết quả trên
Tuy nhiên, ở đây chúng tôi chuyển đổi giây sang định dạng ngày dành riêng cho người dùng, giống như chúng tôi muốn hiển thị bên dưới
“14 ngày, sáu giờ, 56 phút, bảy giây”
Bạn cũng có thể xem các hướng dẫn Date PHP được đề xuất khác,
- Cách nhận chênh lệch ngày so với ngày trong PHP
- Cách chuyển đổi giây thành ngày, giờ và phút
The simple hours formula:
hours = seconds ÷ 3,600
Thời gian tính bằng giờ bằng thời gian tính bằng giây chia cho 3.600. Vì có 3.600 giây trong một giờ nên đó là tỷ lệ chuyển đổi được sử dụng trong công thức
Hàm PHP để chuyển đổi giây thành ngày, giờ, phút và giây
function secsToStr[$secs] { if[$secs>=86400]{$days=floor[$secs/86400];$secs=$secs%86400;$r=$days.' day';if[$days1]{$r.='s';}if[$secs>0]{$r.=', ';}} if[$secs>=3600]{$hours=floor[$secs/3600];$secs=$secs%3600;$r.=$hours.' hour';if[$hours1]{$r.='s';}if[$secs>0]{$r.=', ';}} if[$secs>=60]{$minutes=floor[$secs/60];$secs=$secs%60;$r.=$minutes.' minute';if[$minutes1]{$r.='s';}if[$secs>0]{$r.=', ';}} $r.=$secs.' second';if[$secs1]{$r.='s';} return $r; }
Cách sử dụng đơn giảnecho secsToStr[90360];
đầu ra
1 ngày, 1 giờ, 6 phút 0 giây
Lựa chọn 2. Chuyển đổi Giây thành Ngày, Giờ và Phút
Đoạn mã sau rất đơn giản, để chuyển giây độc lập hoặc trộn thành ngày, giờ và phút
Giả sử bạn đang chạy một tiến trình chạy trong nền. Tốt hơn hết là đừng để người dùng mất kiên nhẫn và cho họ biết khi nào nó sẽ kết thúc. Tuy nhiên, bạn có thời gian còn lại tính bằng giây. Nếu chúng tôi hiển thị cho người dùng
567 seconds to complete
Anh ấy/cô ấy [người dùng] sẽ phải lấy một máy tính và chuyển đổi nó thành phút hoặc giờ. Hoặc nếu anh chàng/cô gái đó không phải là thiên tài toán học, anh ta sẽ đóng giao diện người dùng và nói "Cái quái gì vậy?"
Điểm chính trong giao diện người dùng là
Don't irritate the user
Đánh dấu lời nói của tôi. "Bạn không nên làm người dùng tức giận"
Thử nghiệm
Đây là một chức năng đơn giản để chuyển đổi giây thành giờ, phút và giây riêng biệt hoặc trộn lẫn với nhau
function secToHR[$seconds] {
$hours = floor[$seconds / 3600];
$minutes = floor[[$seconds / 60] % 60];
$seconds = $seconds % 60;
return "$hours:$minutes:$seconds";
}
Nếu bạn thắc mắc tại sao tôi lại chọn secToHR làm tên chức năng, thì đó là từ viết tắt của Seconds to Human Readable
Bài viết này trình bày cách chuyển đổi giây thành giờ-phút-giây trong PHP
1. Sử dụng chức năng gmdate[]
Với chức năng gmdate[] , bạn có thể dễ dàng chia giây đã cho thành các khoảng thời gian giờ-phút-giây. Nó lấy định dạng của chuỗi ngày xuất ra và tham số dấu thời gian tùy chọn, theo thứ tự đó. Ý tưởng là chuyển định dạng H:i:s
trong tham số chuỗi ngày và số giây trong tham số dấu thời gian.
1
2
3
4
Tải xuống Chạy mã
Ở đây, H
đại diện cho giờ ở định dạng 24 giờ [00 đến 23], i
đại diện cho phút [00 đến 59] và s
đại diện cho giây [00 đến 59], tất cả đều có số 0 đứng đầu. Tuy nhiên, điều này chỉ hoạt động nếu số giây nhỏ hơn 86400, tôi. e. , 1 ngày [60 x 60 x 24]
2. Sử dụng chức năng DateTime::diff[]
Ý tưởng là xây dựng một đối tượng DateTime
bằng cách sử dụng các ký hiệu được bản địa hóa, với "@"
đại diện cho dấu thời gian Unix và nhận sự khác biệt của nó với thời gian Epoch bằng cách sử dụng DateTime. hàm diff[] . Sau đó, bạn có thể trích xuất thông tin số giờ, phút và giây từ đối tượng kết quả là DateInterval
bằng cách sử dụng các thuộc tính h
, i
và s
tương ứng.
1
2
3
4
5
6
7
8
9
10
11
12
13
Tải xuống Chạy mã
Một phép tính toán học đơn giản cũng có thể được sử dụng để chia số giây đã cho thành các khoảng thời gian giờ-phút-giây, như minh họa bên dưới
1
2
3
4
5
6
7
8
9
Tải xuống Chạy mã
Đó là tất cả để chuyển đổi giây trong PHP thành giờ-phút-giây