Hàm xử lý ngày tháng (Date and Time php function)

1 - Hiển thị ngày tháng và thời gian hiện tại
Câu hỏi: làm sao hiển thị ngày tháng vào thời gian hiện tại trong PHP
Giải pháp: để giải quyết vấn đề này chúng ta sử dụng hàm getdate()

Ví dụ:

<?php
    $now = getdate();

    $currentTime = $now["hours"] . ":" . $now["minutes"] . ":" . $now["seconds"];
    $currentDate = $now["mday"] . "." . $now["mon"] . "." . $now["year"];

    echo "It is now $currentTime on $currentDate";

?>

2- Định dạng Timestamps
Câu hỏi: Làm sao chuyển Unix timestamps thành kiểu thời gian bình thường
Giải pháp: để giải quyết vấn đề này chúng ta dùng hàm date()

Ví dụ:

<?php

    // result: "30 Oct 2006" (example)
    echo '<br>' . date("d M Y", mktime()) . " n";

    // result: "12:38:26 PM" (example)
    echo '<br>' . date("h:i:s A", mktime()) . " n";

    // result: "Monday, 30 October 2006, 12:38:26 PM" (example)
    echo '<br>' . date ("l, d F Y, h:i:s A", mktime()) . " n";

    // result: "12:38:26 PM UTC"
    echo '<br>' . date ("h:i:s A T", mktime()) . " n";

    // result: "2006-10-30T12:38:26+00:00"
    echo '<br>' . date ("c", mktime());
?>

3- Chuyển một chuỗi sang Timestamps
Câu hỏi: làm thế nào để chuyển một chuỗi ngày tháng năm qua kiểu Timestamps
Giải pháp: để giải quyết vấn đề này chúng ta dùng hàm strtotime()

Ví dụ:

<?php
    // chuoi nguon
    $str = "20030607";

    // chuyen chuoi qua timestamp
    $ts = strtotime($str);

    // result: "Saturday, 07 June 2003 12:00:00 AM" (example)
    echo date("l, d F Y h:i:s A", $ts);
?>

4- Kiểm tra năm nhuần
Câu hỏi: làm sao kiểm tra xem năm có phải năm nhuần hay không
Giải pháp: Năm nhuần là năm chia hết cho 4 hoặc 400 nhưng không phải 100

Ví dụ:

<?php
    function testLeapYear($year) {
    $ret = (($year%400 == 0) || ($year%4 == 0 && $year%100 != 0)) ? true : false;
    return $ret;
    }

    echo '<br>' . testLeapYear(2004) ? "Is a leap year" : "Is not a leap year";

    echo '<br>' . testLeapYear(2001) ? "Is a leap year" : "Is not a leap year";
?>

 
5- Tìm số ngày trong tháng của một năm nào đó
Câu hỏi: làm sao tìm số ngày trong tháng 3 của năm 2005
Giải pháp: để giải quyết vấn đề này chúng ta dùng hàm date()

Ví dụ:

<?php
    $ts = mktime(0,0,0,3,1,2005);
    echo date("t", $ts);
?>

6 - Tìm số ngày và số tuần trong năm

Ví dụ:

<?php
// ngày:  01-Mar-2008
echo date("z", mktime(0,0,0,3,1,2008))+1;

// Tuần: 01-Mar-2008
echo date("W", mktime(0,0,0,3,1,2008));
?>

7- Tìm thứ của ngày
Câu hỏi: làm sao tìm thứ của một ngày nào đó

Ví dụ:

<?php
    // 04-Jun-2008
    $ts = mktime(0,0,0,6,4,2008);
    echo date("l", $ts);
?>

8- Chuyển thời gian Local ra thời gian GMT
Câu hỏi: làm sao chuyển đổi thời gian Local ra thời gian GMT (Greenwich Mean Time)
Giải pháp: để giải quyết vấn đề này chúng ta dùng hàm gmdate()

Ví dụ:

<?php
    echo gmdate("H:i:s d-M-y T") . "n";
    $ts = mktime(4,30,0,2,2,2005);
    echo gmdate("H:i:s d-M-y T", $ts);
?>

9-Chuyển đổi phút sang giờ
Câu hỏi: làm sao chuyển đổi mm sang thành hh:mm

<?php
    $mm = 156;
    echo sprintf("%02dh %02dm", floor($mm/60), $mm%60);
?>

 

avata

bởi Thủy Đinh

Ngày 04/01/2012 vào lúc 11:09:59
Bài viết rất hữu ích, em cảm ơn anh.
Chúc anh năm mới an lành, ấm áp, thành công và tràn đầy yêu thương. :X
avata

bởi Thủy Đinh

Ngày 04/01/2012 vào lúc 11:10:33
Bài viết rất hữu ích, em cảm ơn anh.
Chúc anh năm mới an lành, ấm áp, thành công và tràn đầy yêu thương. :X
avata

bởi moidihoc

Ngày 01/04/2012 vào lúc 02:09:06
thank kiu
avata

bởi Phước Huy

Ngày 13/08/2012 vào lúc 21:47:34
cho em hỏi tại sao khi
echo $now["hours"]

thì không đúng như giờ hệ thống, tức là giờ ở góc trái màn hình
avata

bởi Mr.L

Ngày 14/08/2012 vào lúc 12:53:38
Bạn có thể dùng hàm này:
echo date("H");
avata

bởi Nguyễn Văn Linh

Ngày 15/08/2012 vào lúc 21:48:06
Bạn phải set timezone cho chuẩn mới đc.
thêm dòng code này lên trên hàm lấy giờ của bạn
date_default_timezone_set('Asia/Ho_Chi_Minh');
//đặt lại múi giờ +7 - việt nam
avata

bởi Phước Huy

Ngày 26/08/2012 vào lúc 17:24:57
Cám ơn Văn Linh và Mr.L. Đúng cái mình cần date_default_timezone_set('Asia/Ho_Chi_Minh');
avata

bởi Hướng Thiên

Ngày 25/08/2012 vào lúc 11:09:53
Xin cho em hỏi, nếu muốn lấy tên tiếng anh của một tháng bất kỳ trong năm với hàm Date thì làm như thế nào ạ.
avata

bởi Ngoc Loi

Ngày 25/08/2012 vào lúc 22:59:56
Bạn dùng <?php echo date('d-M-Y')?>. Hàm này sẽ hiển thị ngày hiện tại - tháng hiện tại và năm hiện tại. Trong đó tháng sẽ lấy tên tiếng anh. Chúc bạn thành công.
avata

bởi Hướng Thiên

Ngày 28/08/2012 vào lúc 19:39:19

Nhưng nếu mình muốn lấy tên 1 tháng bất kỳ do người dùng nhập vào thì sao ạ. có dùng hàm date() được không ạ.
avata

bởi Hướng Thiên

Ngày 28/08/2012 vào lúc 19:42:48
Em đã dùng code này và làm được rồi ạ, cám ơn ạ.
<?php
// chuoi nguon
$str = "20030607";

// chuyen chuoi qua timestamp
$ts = strtotime($str);

// result: "Saturday, 07 June 2003 12:00:00 AM" (example)
echo date("l, d F Y h:i:s A", $ts);
?>
avata

bởi hieu

Ngày 18/06/2013 vào lúc 23:52:04
bạn online không mình hỏi tí , giờ mình dùng hàm now() để insert vào csdl mysql rồi giờ nó lưu là 2013-06-02 00:56:51 mình muốn hỏi tí là muốn tách ra riếng biệt để lấy kiểu dạng ngày tháng năm hoặc giờ riếng kiểu gì thì
thì dụ như
<?php
date_default_timezone_set('Asia/Ho_Chi_Minh');
$now = getdate();
$currentTime = $now["hours"] . ":" . $now["minutes"] . ":" . $now["seconds"];
$currentDate = $now["mday"] . "." . $now["mon"] . "." . $now["year"];

echo "It is now $currentTime on $currentDate";

?>

CÁC KHÓA HỌC TẠI ZENDVN

  • Khóa học PHPKhóa học jQuery
  • Khóa học JoomlaKhóa học Zend Framework
  • Khóa học PHPKhóa học jQuery
loading
loading