Ngày xuất ra trong php. Tập lệnh PHP đầu tiên: Hiển thị ngày và giờ

Trong số các tác vụ lập trình khác nhau, các thao tác khác nhau với giá trị ngày và giờ là khá phổ biến. Hiếm hệ thống tự động, cơ sở dữ liệu có thể thực hiện mà không cần lưu trữ thông tin về thời gian của một quy trình cụ thể. Ngoài việc bổ sung ngày tháng đơn giản nhất vào bản ghi cơ sở dữ liệu hoặc hiển thị ngày này, còn có nhiều nhiệm vụ hiển thị những ngày này trong dưới nhiều hình thức khác nhau, kiểm tra xem thời gian hiện tại có khớp không đặt hẹn giờ, tính toán khoảng thời gian giữa hai ngày và nhiều hơn nữa.

Để thuận tiện cho việc làm việc với ngày tháng, mỗi ngôn ngữ lập trình đều có ngôn ngữ riêng. loại đặc biệt dữ liệu để lưu trữ giá trị ngày và giờ. Thông thường nhất điều này giá trị số, số nguyên hoặc dấu phẩy động.

TRONG công việc PHP với một ngày, nó thường gặp UNIX TIMESTAMP. Ở đây thời gian được lưu trữ dưới dạng số nguyên. Việc tính toán thời gian bắt đầu từ ngày 1 tháng 1 năm 1970. Do đó, ví dụ: ngày và giờ 11/12/2014 19:40:00 sẽ được biểu thị bằng số 1418316000. Con số này cho biết bao nhiêu giây đã trôi qua kể từ ngày 0 của ngày 1 tháng 1 năm 1970, được gọi là Kỷ nguyên Unix.

Một ví dụ về trang PHP cung cấp khả năng chuyển đổi dữ liệu được trình bày trên trang web trong phần chương trình với chương trình "Chuyển đổi định dạng ngày và giờ". Tại đây bạn có thể tạo ngày mong muốn trong định dạng UNIX TIMESTAMP, cũng như đưa định dạng này về dạng chuẩn mà con người có thể đọc được.

Lấy ngày giờ hiện tại bằng PHP

Để lấy thời gian hiện tại của máy chủ, hãy sử dụng chức năng

thời gian int(void)

sẽ trả về giá trị ở định dạng dấu thời gian unix.

thời gian vang vọng(); // xuất thời gian hiện tại ở định dạng dấu thời gian unix

Thoạt nhìn không hay lắm định dạng thuận tiệnđối với một người, nhưng, như đã biết, hơn trình bày đơn giản hơn dữ liệu, máy tính xử lý các giá trị này càng nhanh. Ngoài ra, việc lưu trữ một số trong cơ sở dữ liệu còn tiết kiệm chi phí hơn nhiều so với bất kỳ phương pháp nào khác. định dạng đặc biệt. Ngoài ra, PHP hoạt động giống nhau theo thời gian trên cả Unix và Nền tảng Windows, điều này giúp bạn có thể sử dụng mã trên bất kỳ nền tảng nào trong số này.

Chuyển đổi định dạng ngày và giờ trong PHP

Cơ chế đơn giản nhất để chuyển đổi giá trị ngày tháng thành giá trị dễ hiểu hơn được cung cấp bởi hàm:

mảng getdate()

Cô ấy trở về mảng kết hợp, chứa thông tin ngày tháng. Nếu tham số dấu thời gian không được chỉ định thì thời gian hiện tại sẽ được trả về. Mảng này chứa các giá trị sau:

Mảng kết quả cho phép bạn hiển thị các giá trị ở dạng mong muốn:

ngày $ = 1418372345;
$date_mas = getdate($date);
echo $date_mas["mday" ] . " . " . $date_mas["tháng" ] . " . " . $date_mas["năm" ]; // 12.12.2014


Bạn cũng có thể sử dụng hàm để chuyển đổi định dạng ngày và giờ:

chuỗi ngày (chuỗi $template [, int $unix_timestamp])

Nó được dự định để có được hiện tại ngày unix dấu thời gian trong ở định dạng được yêu cầu. Tham số chuỗi $template chỉ định định dạng đầu ra. Tham số $unix_timestamp có thể được sử dụng để chỉ định giá trị thời gian nào sẽ hoạt động. Đây là tùy chọn, vì vậy nếu không được chỉ định, ngày và giờ hiện tại sẽ được sử dụng.

Định dạng được chỉ định bởi các giá trị sau:

Một“trước” và “sau” buổi trưa: “sáng” hoặc “chiều”
MỘT"trước" và "sau" buổi trưa bằng chữ in hoa: "Sáng" hoặc "Chiều"
dngày trong tháng gồm 2 chữ số (nếu nhỏ hơn 10 thì số 0 đứng đầu) (01 đến 31)
Dngày trong tuần bằng 3 chữ cái. Ví dụ: "Thứ Hai" (Thứ Hai)
jngày trong tháng, 1-2 chữ số không có số 0 đứng đầu (từ 1 đến 31)
Ftên của tháng. Ví dụ: "Tháng Giêng"
hgiờ, định dạng 12 giờ (01 đến 12)
Hđịnh dạng giờ, 24 giờ (00 đến 23)
ggiờ, định dạng 12 giờ không có số 0 (1 đến 12)
Gđịnh dạng giờ, 24 giờ không có số 0 (0 đến 23)
Tôiphút (00 đến 59)
Tôi (viết hoa i)1 nếu chuyển sang thời gian mùa hè, nếu không thì 0
L1 nếu năm đó là năm nhuận hoặc 0 nếu năm đó không phải là năm nhuận
Bthời gian ở định dạng thời gian Internet ( hệ thống thay thếđếm ngược thời gian trong ngày) (từ 000 đến 999)
Tmúi giờ máy tính. Ví dụ: MDT
l (chữ thường L)ngày trong tuần. Ví dụ: "Thứ Hai"
tôitháng, hai chữ số có số 0 (01 đến 12)
Ntháng, một hoặc hai chữ số không có số 0 (từ 1 đến 12)
Mtên viết tắt của tháng. Ví dụ: "tháng một"
tsố ngày trong tháng được chỉ định (từ 28 đến 31)
Sgiây (0 đến 59)
SHậu tố số thứ tự gồm hai chữ cái tiếng Anh ("st", "nd", "rd" hoặc "th")
bạnsố nguyên giây kể từ khi bắt đầu kỷ nguyên UNIX
ynăm, kỹ thuật số, 2 chữ số (14)
Ynăm, kỹ thuật số, 4 chữ số (2014)
zsố thứ tự của ngày trong năm (từ 0 đến 365)
ZĐộ lệch múi giờ tính bằng giây (từ -43200 đến 43200)
Nsố thứ tự của ngày trong tuần từ 1 (Thứ Hai) đến 7 (Chủ Nhật) theo tiêu chuẩn ISO-8601, (được thêm vào PHP 5.1.0)
wsố thứ tự của ngày trong tuần từ 0 (Chủ Nhật) đến 6 (Thứ Bảy)
Wsố thứ tự của tuần trong năm theo tiêu chuẩn ISO-8601; tuần bắt đầu vào thứ Hai (được thêm vào PHP 4.1.0)
số năm theo tiêu chuẩn ISO-8601. Có cùng ý nghĩa với Y, ngoại trừ khi số tuần ISO (W) là của năm trước hoặc năm sau; thì năm của tuần đó sẽ được sử dụng. (được thêm vào PHP 5.1.0)
emã tỷ lệ múi giờ. Ví dụ: UTC, GMT, Atlantic/Azores (được thêm vào PHP 5.1.0)
sự khác biệt với thời gian Greenwich, tính bằng giờ. Ví dụ: +0200
Psự khác biệt so với Giờ chuẩn Greenwich với dấu hai chấm giữa giờ và phút. Ví dụ: +02:00 (được thêm vào PHP 5.1.3)
cngày ở định dạng chuẩn ISO 8601 Ví dụ: 2014-12-12T15:19:21+00:00 (được thêm vào PHP 5)
rngày ở định dạng » RFC 2822 Ví dụ: Thứ năm, ngày 21 tháng 12 năm 2000 16:01:07 +0200.
bạnsố giây đã trôi qua kể từ khi bắt đầu Kỷ nguyên Unix (Kỷ nguyên Unix, ngày 1 tháng 1 năm 1970 00:00:00 GMT)

Như bạn có thể thấy trong danh sách, bạn có thể nhận được rất nhiều dữ liệu ngày tháng hữu ích bằng cách sử dụng chức năng này. Ví dụ:

ngày $ = 1418372345; // ngày và giờ ban đầu 12/12/2014 11:19:05

echo date("d.m.Y", $date); // 12.12.2014 (ngày)
echo date("H:i:s", $date); // 11:19:05 (thời gian)
echo date("H:i", $date); // 11:19 (giờ)
ngày echo("t", $date); // 31 (số ngày trong tháng)
ngày echo("z", $date); // 345 (số thứ tự ngày trong năm)
echo date("l dS \of F Y h:i:s A" , $date); // Thứ sáu ngày 12 tháng 12 năm 2014 11:19:05 sáng

Các ký tự khác có trong mẫu sẽ được in như trên dòng. Nếu bạn cần nhập một ký tự được sử dụng trong hàm làm mã định dạng, ký tự "\" sẽ được chèn vào phía trước chúng. Đối với giá trị "\n" (ký tự chuyển tiếp dòng mới), bạn nên chỉ định "\\n". Do đó, bạn có thể xuất toàn bộ tin nhắn chứa thông tin ngày và giờ:

ngày vang vọng( "Hôm nay là ngày thứ z của năm thứ y", ngày $); // Hôm nay là ngày thứ 345 của năm 2014

Chuyển đổi ngày và giờ sang định dạng dấu thời gian

Để đảo ngược chuyển đổi ngày từ định dạng chuẩn Hàm được áp dụng cho giá trị dấu thời gian dạng số:

int mktime(]]]]]])

Hàm mktime() trả về giá trị thời gian Unix tương ứng với ngày và giờ được chỉ định bởi các đối số của nó. Ví dụ:

$my_date = mktime(10, 30, 0, 12, 12, 2014);

Bạn nên cẩn thận về thứ tự của các đối số của hàm: giờ, phút, giây, tháng, ngày, năm.

Ngoại trừ sự hình thành đơn giản giá trị ngày trong dấu thời gian, hàm mktime() có thể được sử dụng để thực hiện phép tính số học với ngày tháng. Để làm điều này, bạn chỉ cần nhập các đối số cần thiết. Ví dụ: nếu bạn chỉ định tháng thứ 14 thì trong giá trị cuối cùng, tháng sẽ là tháng thứ 2 và giá trị năm sẽ tăng thêm một:

$ngày_của_tôi = 12;
$my_month = 12;
$my_year = 2014;

$new_date = mktime(0, 0, 0, $my_month + 5, $my_day, $my_year);

echo date("d.m.Y", $new_date); // 12/05/2015 (ngày)

Bạn có thể làm tương tự với các thông số khác.

Kiểm tra tính hợp lệ của ngày trong PHP

Khi làm việc với ngày tháng, đặc biệt là khi tạo ngày bằng hàm mktime() được đề xuất ở trên, cần phải tính đến tính chính xác của ngày đã nhập. Để làm điều này, PHP sử dụng hàm:

ngày kiểm tra bool(int tháng, int ngày, int năm)

Trả về true nếu ngày được đối số chỉ định là chính xác; nếu không nó sẽ trả về sai. Ngày được coi là chính xác nếu:

Năm trong khoảng từ 1 đến 32767;

Tháng dao động từ 1 đến 12;

Ngày của một tháng nhất định, có tính đến năm nhuận, được chỉ định chính xác.

Ví dụ kiểm tra ngày:

$ngày_của_tôi = 32;
$my_month = 12;
$my_year = 2014;

if (!checkdate($my_month, $my_day, $my_year))
tiếng vọng "Lỗi: ngày không chính xác";

JavaScript bị chặn trong trình duyệt của bạn. Vui lòng kích hoạt JavaScript để trang web hoạt động!

Biểu diễn ngày và giờ

TRONG hệ thống phân phối, chẳng hạn như Internet, thời gian đóng một vai trò đặc biệt. Do có sự khác biệt nhỏ về đồng hồ hệ thống, người chơi Forex có thể mất hàng chục nghìn đô la trong vòng vài phút; hệ thống thông tin kinh doanh sẽ mắc sai lầm khi đưa ra dự báo; Máy chủ NNTP sẽ mất trong quá trình đồng bộ hóa Thông tin quan trọng, người dùng cần vân vân.

PHP chứa nhiều hàm để làm việc với ngày và giờ. Được sử dụng nhiều nhất là:

  • thời gian()- trả về thời gian tuyệt đối hiện tại. Con số này bằng số giây đã trôi qua kể từ nửa đêm ngày 1 tháng 1 năm 1970 (kể từ đầu kỷ nguyên UNIX).
  • hẹn gặp()- đọc thông tin ngày và giờ. Trả về một mảng kết hợp chứa thông tin về thời gian đã chỉ định hoặc hiện tại (theo mặc định). Mảng chứa các phần tử sau:

    ví dụ 1

    Sử dụng getdate() $val) echo "$key = $val
    "; tiếng vang"
    Hôm nay: $d.$d.$d"; ?>

    KẾT QUẢ VÍ DỤ 1:

    Giây = 21 phút = 4 giờ = 12 ngày = 10 ngày = 4 tháng = 11 năm = 2005 yngày = 313 ngày trong tuần = Tháng thứ năm = Ngày 0 tháng 11 = 1131613461 Hôm nay: 10/11/2005

  • ngày()- định dạng ngày và giờ. Đối số: chuỗi định dạng và thời gian tuyệt đối. Đối số thứ hai là tùy chọn. Trả về một chuỗi có giá trị đã cho hoặc ngay hiện tạiở định dạng đã chỉ định. Chuỗi định dạng có thể chứa các mã sau:
    Một
    MỘTBao gồm chỉ định "AM" hoặc "PM"
    dNgày trong tháng (01-31)
    DTên viết tắt của ngày trong tuần (ba chữ cái)
    FTên đầy đủ của tháng
    gĐồng hồ (định dạng 12 giờ không có số 0 đứng đầu)
    GĐồng hồ (định dạng 24 giờ không có số 0 đứng đầu)
    hĐồng hồ (định dạng 12 giờ)
    HĐồng hồ (định dạng 24 giờ)
    TôiPhút (00-59)
    jNgày trong tháng không có số 0 đứng đầu (1-31)
    tôiTên đầy đủ của ngày trong tuần
    LChỉ báo năm nhuận (0 hoặc 1)
    tôiTháng (01-12)
    MTên tháng viết tắt (ba chữ cái)
    NTháng (1-12)
    SGiây (00-59)
    tSố ngày trong một tháng nhất định (từ 28 đến 31)
    bạnThời gian tuyệt đối
    w
    yNăm (hai cấp)
    YNăm (bốn cấp)
    zNgày trong năm (0-365)
    ZĐộ lệch múi giờ tính bằng giây (-43200 đến 43200)

    Mọi thông tin khác có trong chuỗi định dạng sẽ được chèn vào chuỗi trả về. Nếu bạn cần thêm các ký tự vào chuỗi định dạng mà bản thân chúng là mã định dạng thì trước chúng phải có dấu gạch chéo ngược "\". Các ký tự trở thành mã định dạng khi thêm dấu gạch chéo ngược phải đứng trước hai dấu gạch chéo lên. Ví dụ: nếu bạn cần thêm "n" vào một chuỗi, bạn phải nhập "\\n" vì "\n" là ký tự dòng mới.

    Ví dụ 2

    Sử dụng ngày()

    KẾT QUẢ VÍ DỤ 2:

    Hôm nay: 10.11.05 13:03

  • mktime()- trả về thời gian tuyệt đối, sau đó có thể được sử dụng với các hàm date() hoặc getdate(). Lấy tối đa sáu đối số nguyên theo thứ tự sau:

    Đồng hồ
    phút
    giây
    tháng
    Ngày trong tháng
    năm

    Ví dụ 3

    Sử dụng mktime()

    KẾT QUẢ VÍ DỤ 3:

  • ngày kiểm tra()- kiểm tra tính chính xác của ngày. Đối số: tháng, ngày, năm. Trả về true nếu ngày đúng, tức là
    tháng - một số nguyên từ 1 đến 12;
    day là một số nguyên không vượt quá tổng số ngày trong một tháng nhất định. Trong trường hợp này, năm nhuận được xử lý chính xác;
    năm là một số nguyên từ 1 đến 32767.

    Ví dụ:

    Nếu (!checkdate($month, 1, $year)) ( $d = getdate(); $month = $d; $year = $d; )

    Chú ý! Ngày có thể nằm trong phạm vi hợp lệ nhưng các hàm ngày khác sẽ không chấp nhận giá trị. Vì vậy, mktime() không nên được sử dụng trong những năm trước năm 1902 và nên thận trọng khi sử dụng trong những năm trước năm 1970.

  • strftime()- hình thành ngày và giờ địa phương. Đối số: chuỗi định dạng và thời gian tuyệt đối. Đối số thứ hai là tùy chọn. Trả về một chuỗi có ngày đã cho hoặc ngày hiện tại ở định dạng đã chỉ định. Trong trường hợp này, tên của tháng và ngày trong tuần được trích xuất từ ​​ngôn ngữ đã chọn bằng hàm. Chuỗi định dạng có thể chứa các mã sau:
    %MộtTên viết tắt của ngày trong tuần
    %MỘTTên đầy đủ của ngày trong tuần
    %bTên tháng viết tắt
    %BTên đầy đủ của tháng
    %cĐịnh dạng ngày và giờ ưa thích
    %CSố thế kỷ
    %dNgày trong tháng (1-31)
    %DGiống như %m/%d/%y
    %eTháng (1-12)
    %hGiống như %b
    %HĐồng hồ (định dạng 24 giờ)
    %TÔIĐồng hồ (định dạng 12 giờ)
    %jNgày trong năm (0-365)
    %mTháng (1-12)
    %Mphút
    %NKý tự dòng mới
    %PBao gồm ký hiệu "sáng" hoặc "chiều"
    %rThời gian sử dụng ký hiệu a.m./p.m.
    %RThời gian ở định dạng 24 giờ
    %SGiây (00-59)
    %tKý tự tab
    %TGiống như %H:%M:%S
    %uSố ngày trong tuần (1 - Thứ Hai, 7 - Chủ Nhật)
    %USố tuần. Việc đếm ngược bắt đầu vào Chủ nhật đầu tiên của năm
    %VSố tuần theo tiêu chuẩn ISO 8601:1988. Tuần đầu tiên phải có ít nhất 4 ngày và thứ Hai được coi là ngày đầu tiên
    %WSố tuần. Việc đếm ngược bắt đầu vào thứ Hai đầu tiên của năm
    %wSố ngày trong tuần (0 - Chủ Nhật, 6 - Thứ Bảy)
    %xĐịnh dạng ngày ưa thích không có thời gian
    %XĐịnh dạng thời gian ưa thích không có ngày
    %yNăm (hai cấp)
    %YNăm (bốn cấp)
    %ZMúi giờ (tên hoặc viết tắt)
    %% Biểu tượng "%"

    Mọi thông tin khác có trong chuỗi định dạng sẽ được chèn vào chuỗi trả về.

Làm việc với ngày và giờ trong PHP tương đối dễ dàng. Tính sẵn có khá số lượng lớn các hàm làm cho mã bớt cồng kềnh hơn (và trong PHP 5.2 với sự ra đời của DateTime và trong 5.3 với việc bổ sung các lớp DateInterval và DatePeriod cũng như các phương thức riêng lẻ, việc làm việc với ngày tháng thậm chí còn trở nên đơn giản và thuận tiện hơn). Vì vậy, để làm việc với ngày tháng... Trước tiên, trong mọi trường hợp, bạn nên nhớ rằng:

  • hầu hết mọi hành động đều có thể được thực hiện theo nhiều cách;
  • tất cả mã được viết để trình diễn và làm ví dụ;
  • Kết quả thay thế được đề xuất có thể không phải lúc nào cũng phù hợp khi sử dụng nhiều hơn phiên bản đầu PHP (đôi khi dễ dàng hơn việc chỉnh sửa mã làm việc từ nhiều năm trước);

Trong PHP 5.3 cho hoạt động chính xácđể tránh lỗi Tiêu chuẩn nghiêm ngặt. Ngày nay, theo quy định, tình huống này được tính đến trong tập lệnh hoặc trong cài đặt lưu trữ.

PHP chuyển đổi dấu thời gian UNIX thành ngày ở định dạng nhất định

Một trong những điều nhất nhiệm vụ đơn giản. Hàm được sử dụng là: date($format, $time)
Tham số đầu tiên chuyển định dạng ngày - để biết thêm chi tiết, hãy xem tài liệu (đối với “thông thường” 28.02.2012 15:43:59 nên được sử dụng:
date("d.m.Y H:i:s", $time)

PHP cách tìm ra ngày mai/ngày hôm qua

Mọi thứ ở đây cũng đơn giản. Hàm time() lấy thời gian hiện tại ở định dạng Dấu thời gian UNIX. Trừ (ngày hôm qua) hoặc cộng (ngày mai) số lượng yêu cầu giây (86400 = 3600*24 - tính bằng ngày) và chúng tôi nhận được:
$bây giờ = thời gian(); // không yêu cầu
$ hôm qua = thời gian()-3600*24;
$ngày mai = thời gian()+3600*24;
$weekBefore = time() - 3600*24*7; // một tuần trước
echo "Hôm qua: ",date("d.m.Y", $hôm qua),"
Ngày mai:",date("d.m.Y",$tomorrow);

PHP cách lấy ngày với mức chênh lệch cụ thể (X ngày sớm hơn/muộn hơn)

Đôi khi bạn cần tìm ra một ngày sẽ cách ngày được chỉ định vài ngày. Ví dụ: người dùng đã thanh toán dịch vụ vào ngày 11 tháng 2 năm 2013 trong 3 tuần. Thông tin thanh toán có sẵn. Nó được trả cho đến ngày nào?

Khi bạn có thể “chỉ” thêm một vài ngày và nhận được ngày 13 tháng 2, thủ tục này không gây ra bất kỳ khó khăn cụ thể nào. Nhưng còn số lượng khác nhau ngày trong một tháng? Còn năm nhuận thì sao? Mọi thứ đều đã được phát minh ra trước chúng ta - để tính ngày từ một khoảng thời gian đã biết, chúng ta sẽ sử dụng mktime

$thanh toán = mảng("ngày"=>11,"tháng"=>2,"năm"=>2013);
$toDate = mktime(0,0,0,$thanh toán["tháng"],$thanh toán["ngày"]+3*7,$thanh toán["năm"]);
echo date("d.m.Y",$toDate); // Phần kết luận
// trong PHP > 5.3 sử dụng DateInterval
date_default_timezone_set("Châu Âu/Moscow");
$datetime = DateTime mới(date());
$datetime->sub(DateInterval mới("P7D")); // trừ 7 ngày

PHP cách tính chênh lệch giữa các ngày

Trông có vẻ tình huống đơn giản- có hai ngày, đếm số ngày (tháng và ngày) giữa chúng. Tuy nhiên, việc triển khai “thủ công” sẽ mất một chút thời gian và có thể thiếu thứ gì đó (cho vui - những ai muốn thử có thể để lại mã trong phần bình luận). PHP có sẵn hàm date_diff để tính chênh lệch giữa các ngày hoặc chính xác hơn là Datetime::diff
$datetime1 = DateTime mới("2013-05-01");
$datetime2 = DateTime mới("2013-01-01");
$interval = $datetime1->diff($datetime2);
echo $interval->format("%R%a ngày sau Tết");

PHP chuyển đổi ngày DDD thành X năm Y tháng Z năm

Đôi khi bạn cần hiển thị thời gian sau một sự kiện nào đó. Ví dụ, sau khi đăng ký nó đã trôi qua. Để thuận tiện (3200 ngày không có ý nghĩa nhiều), nhận thức có thể được chuyển đổi thành năm và tháng bằng cách sử dụng định dạng DateInterval::format
$registerDate = DateTime mới("2009-03-03");
$hôm nay = DateTime mới();
$interval = $hôm nay->diff($registerDate);
echo "Đã hết thời gian kể từ khi đăng ký: ";
echo $interval->format("%a day")."\n"; // tổng số ngày
tiếng vang "hoặc";
echo $interval->format("%m tháng, %d ngày"); // tháng, ngày

Bản dịch PHP từ ngày sang dấu thời gian - phân tích ngày ở định dạng tiếng Nga

Đôi khi bạn cần chuyển đổi một ngày ở định dạng dễ đọc sang định dạng UNIX TIMESTAMP. Để phân tích một ngày ở định dạng '2013-05-30 12:35' thành các thành phần của nó (lấy riêng năm, tháng, ngày). ), bạn có thể sử dụng hàm date_parse. Để chuyển đổi trực tiếp sang dấu thời gian unix, bạn có thể sử dụng strtotime (cũng như các biến thể như 'bây giờ', '+1 ngày', 'Thứ Năm tuần sau' - php.net/manual/en/datetime.formats.php):
echo strtotime("2013-05-30");
print_r (date_parse("2013-05-30 12:35"));

Tuy nhiên, đối với Nga, định dạng quen thuộc hơn là DD.MM.YYYY. Tất nhiên, bạn có thể chia ngày cho ký hiệu dấu chấm, lấy ngày, tháng, năm và sử dụng hàm mktime để tìm ra giá trị UNIX TIMESTAMP tương ứng. PHP5.3 đã giới thiệu hàm date_parse_from_format, trong đó bạn có thể truyền một chuỗi định dạng vào đó. Và đối với PHP5.2, tôi đã sử dụng strptime (hóa ra là sự tồn tại của nó, không phải ai cũng biết đến, có lẽ vì đơn giản là nó không được triển khai cho Windows: Chức năng này không được triển khai trên nền tảng Windows):

$date = "30/05/2013 12:35";
$format = "d.m.Y H:i";
print_r (date_parse_from_format($format,$date));
// Lựa chọn thay thế cho PHP5.2
$format = "%d.%m.%Y %H:%M"; // khác với cái được sử dụng trong hàm date
$d = strptime($date, $format);
$newDate = mktime($d["tm_hour"], $d["tm_min"], $d["tm_sec"],
$d["tm_mon"]+1, $d["tm_mday"], $d["tm_year"]+1900); // tm_mon 0-11, tm_year 1900
echo $newDate;

Ngoài ra, hàm strptime còn có các tính năng đặc biệt - tháng được dịch chuyển một đơn vị (tháng 1 - 0) và năm là số năm kể từ năm 1900, tức là. cho năm 2013 $d[’tm_year’] sẽ bằng 113.

Liên kết và thông tin hữu ích:
Các hàm dateTime của PHP http://www.php.net/manual/en/ref.datetime.php - các hàm làm việc với ngày
Lớp PHP DateTime http://www.php.net/manual/en/class.datetime.php
PHP date_diff http://www.php.net/manual/en/function.date-diff.php
PHP strftime http://ru2.php.net/manual/en/function.strftime.php
PHP date_parse_from_format http://ru2.php.net/manual/en/function.date-parse-from-format.php

Rõ ràng là các lập trình viên thường xuyên phải làm việc với ngày và giờ. Ví dụ đơn giản nhất là ngày và giờ tin nhắn được gửi trên diễn đàn. Và tất nhiên, những điều đó có thể được thực hiện trên PHP, đặc biệt là vì có nhiều cơ hội cho làm việc với ngày và giờ trong PHP rất nhiều.

Chức năng cơ bản liên quan đến ngày và giờ trong PHP, - Cái này hàm thời gian(), trả về số giây đã trôi qua kể từ nửa đêm ngày 01/01/1970(sự ra đời của thời đại Unix):

thời gian vang vọng();
?>

Bằng cách chạy tập lệnh này, bạn sẽ biết được bao nhiêu giây đã trôi qua kể từ nửa đêm ngày 01/01/1970 cho đến thời điểm gọi điện hàm thời gian() trong kịch bản của bạn.

Tất nhiên, ngoài điều này chức năng cơ bản, hiện diện trong tất cả các ngôn ngữ lập trình mà bạn có thể làm việc với ngày và giờ(ít nhất là trong số những cái tôi biết) có một chức năng khác tên là hẹn gặp():

$datetime = getdate();
foreach ($datetime là $k=>$v)
tiếng vang "$k - $v
";
?>

Khi chạy tập lệnh này, bạn sẽ thấy một tập hợp các khóa trong mảng và các giá trị tương ứng của chúng (đồng thời, chúng tôi đã lặp lại việc xây dựng cho mỗi). Tôi nghĩ rằng bây giờ bạn sẽ không khó để tìm ra bất kỳ dữ liệu nào liên quan đến ngày và giờ. Ví dụ: để hiển thị thời gian hiện tại, bạn sẽ viết đoạn mã sau:

$datetime = getdate();
echo $datetime["hours"]...:"$datetime["phút"]..:":$datetime["seconds"];
?>

Cũng hàm getdate() có một tham số tùy chọn có nghĩa là số giây đã trôi qua kể từ nửa đêm ngày 01/01/1970. Nó được tạo ra để hàm này có thể trả về không chỉ thời điểm hiện tại và ngày tháng, và nói chung, bất kỳ:

$datetime = getdate(152353232);
echo $datetime["năm"];
?>

Kết quả là bạn sẽ thấy 1974 năm.

Ngoài ra còn có hàm ngày(). Tôi khuyên bạn nên xem mô tả của nó trong sách tham khảo, vì Chức năng này chấp nhận một tham số rất phức tạp chỉ định định dạng đầu ra ngày tháng. Có hơn 30 phần tử định dạng. Và trong ví dụ dưới đây tôi sẽ đưa ra một vài trong số đó và xem phần còn lại trong sách tham khảo, vì bạn không cần phải ghi nhớ chúng nhưng bạn nên tự làm quen với chúng. Nhưng cần phải biết nguyên tắc sử dụng của chúng và ví dụ sau về nó:

echo date("Hôm nay d.m.Y H:i:s");
?>

Kết quả là bạn sẽ thấy một cái gì đó như thế này: " Hôm nay 15/11/2010 21:44:24". Cũng hàm ngày() Ngoài ra còn có tham số tùy chọn thứ hai chỉ định dấu thời gian, chính xác là giá trị bằng số giây đã trôi qua kể từ nửa đêm ngày 01/01/1970. Ví dụ về việc sử dụng tham số thứ hai:

echo date("Ngày xửa ngày xưa có d.m.Y H:i:s", 5393235329);
?>

Ngoài ra còn có hàm gmdate(), đó là một sự tương tự hoàn toàn hàm ngày(), Nhưng hàm gmdate() hiển thị thời gian không theo múi giờ của máy chủ nơi tập lệnh đang chạy mà theo Greenwich. Rõ ràng, khi sử dụng chức năng này, bạn cần lưu tất cả thông tin về ngày giờ mà người dùng nhìn thấy và khi xuất ra bạn cần điều chỉnh theo múi giờ của từng người dùng (tất nhiên là lý tưởng nhất):

echo gmdate("Bây giờ ở Greenwich D M j H:i:s T Y")
?>

Kết quả là bạn sẽ thấy một cái gì đó như thế này: " Thứ Hai ngày 15 tháng 11 18:52:45 GMT 2010"Tất nhiên, bạn sẽ thấy một ngày khác, nhưng ở định dạng tương tự. Tôi cũng đặc biệt khuyên bạn nên xem sách tham khảo và làm quen với các thành phần ngày và giờ khác trong PHP(Tôi chỉ đưa ra một phần ba), vì Hàm date() và gmdate()- đây là cách đơn giản nhất và nhất đường tắt lấy ngày và giờở hầu hết mọi định dạng.