Hướng dẫn dùng denmark timezone trong PHP

Đôi lúc các bạn xem các hướng dẫn về hàm lấy thời gian :date[format,timestamp].

Nếu chưa biết hàm date[format,timestamp] bạn có thể xem ở link://congnghe5s.com/bai-viet/xu-ly-ngay-gio-trong-php.html.

Bạn thực hiện test lệnh trên máy và kết quả không khớp với time hiện tại. Đó là vì lí do thời gian hay timezone trên server bạn đã cài đặt khác vì thế để trả về đúng time bạn muốn bạn có thể dùng hàm:

Cú pháp:date_default_timezone_set [ string $timezone_identifier ].

tham số : $timezone_identifier bạn lấy ở đây://php.net/manual/en/timezones.asia.php

phù hợp khu vực bạn muốn ví dụ mình muốn set lấy giờ việt nam mình làm như sau:

date_default_timezone_set['Asia/Ho_Chi_Minh'].

Sau đó các bạn dùng hàm : echo date['d/m/Y - H:i:s'];

ra đúng kết quả time ở Việt Nam.

Ví dụ:

date_default_timezone_set['Asia/Ho_Chi_Minh'];

if [date_default_timezone_get[]] {
    echo 'date_default_timezone_set: ' . date_default_timezone_get[] . '
';
}
echo date['d/m/Y H:i:s'];

Ví dụ trên có 1 hàm cũng khá quan trọng : date_default_timezone_get[]  trả về timezone mặc định của server bạn đang chạy hoặc là đã được thiết lập thông qua date_default_timezone_set[].

Qua bài viết hy vọng các bạn có thêm kiến thức khi xử lý ngày tháng trong PHP.

I live in Denmark - but am setting up a page for a friend in USA [Washington State]. The page is hosted at Surftown, in Denmark.

I know there is a 9 hour difference, so I set:

date_default_timezone_set['America/Los_Angeles'];

But there is something I obviously don't quite understand about time zones / date[] and strtotime[] because:

Via text input I am trying to save a specific date and time to the database.

Lets say that $_POST[date] input is: '01/29/2015' and $_POST[time] input is: '02:00 PM'.

I then create a stamp using:

strtotime[$_POST[date].' '.$_POST[time]];

But when I try to output this, I get the correct date - but 9 hours is added to time? Why is this?

I guess I could just remove the time zone setting for this specific task - but I'd like to understand why. I am setting the time zone because I also need to save some timestamps based on the actual time of the user [in Washington state - not Denmark].

Can you help?

Trong hướng dẫn này, chúng ta sẽ xem xét hai công cụ BDD khác nhau, Behat và phpspec, và xem chúng có thể hỗ trợ bạn như thế nào trong quá trình phát triển của bạn. Học BDD có thể gây nhầm lẫn. Phương pháp mới, công cụ mới và nhiều câu hỏi, chẳng hạn như "những gì cần kiểm tra?" và "công cụ nào để sử dụng?" Tôi hy vọng rằng ví dụ khá đơn giản này sẽ cung cấp cho bạn những ý tưởng về cách bạn có thể kết hợp BDD vào quy trình làm việc của riêng bạn.

Nguồn cảm hứng của tôi

Tôi đã có cảm hứng để viết hướng dẫn này bởi Taylor Otwell, người tạo ra khung công tác Laravel. Một vài lần, tôi đã nghe Taylor giải thích lý do tại sao anh ta hầu như không làm TDD / BDD bằng cách nói rằng anh ấy thích đầu tiên lên kế hoạch API của mã của mình, trước khi thực sự bắt đầu thực hiện nó. Tôi đã nghe điều này từ nhiều nhà phát triển, và mỗi khi tôi nghĩ đến bản thân mình: "Nhưng đó là trường hợp sử dụng hoàn hảo cho TDD / BDD!". Taylor nói rằng anh thích lập bản đồ API của mã của mình, bằng cách viết mã mà anh mong muốn. Sau đó, anh ta sẽ bắt đầu viết mã và không hài lòng cho đến khi đạt được API chính xác đó. Lập luận có ý nghĩa nếu bạn chỉ kiểm tra / chỉ định ở cấp độ đơn vị, nhưng sử dụng một công cụ như Behat, bạn bắt đầu với hành vi bên ngoài của phần mềm, về cơ bản, theo như tôi hiểu, những gì Taylor muốn hoàn thành.

Chúng tôi sẽ bao gồm những gì

Trong hướng dẫn này, chúng tôi sẽ xây dựng một lớp trình tải tệp cấu hình đơn giản. Chúng tôi sẽ bắt đầu bằng cách sử dụng cách tiếp cận của Taylor và sau đó chuyển sang một phương pháp BDD thay thế. Các ví dụ là tối giản, nhưng chúng tôi vẫn sẽ phải lo lắng về đồ đạc, phương pháp tĩnh, vv, vì vậy tất cả-trong-tất cả, tôi nghĩ rằng họ nên là đủ để hiển thị như thế nào và phpspec có thể bổ sung cho nhau.

Disclaimer: Trước hết, bài viết này không phải là một hướng dẫn bắt đầu. Nó giả định kiến ​​thức cơ bản về BDD, Behat và phpspec. Bạn có thể đã xem xét các công cụ này, nhưng vẫn đang vật lộn với cách sử dụng chúng thực sự trong công việc hàng ngày của bạn. Nếu bạn muốn đánh dấu trên phpspec, hãy xem hướng dẫn bắt đầu của tôi. Thứ hai, tôi đang sử dụng Taylor Otwell làm ví dụ. Tôi không biết gì về cách Taylor làm việc, bên cạnh những gì tôi nghe anh ta nói trong podcast vv Tôi sử dụng anh ta làm ví dụ vì anh ấy là một nhà phát triển tuyệt vời [anh ấy đã tạo Laravel!] Và vì anh ấy nổi tiếng. Tôi cũng có thể đã sử dụng một người khác, vì hầu hết các nhà phát triển, bao gồm cả bản thân tôi, không làm BDD tất cả các thời gian, được nêu ra. Ngoài ra, tôi không nói rằng công việc Taylor mô tả là xấu. Tôi nghĩ rằng đó là một ý tưởng tuyệt vời để đưa một số suy nghĩ vào mã của bạn trước khi thực sự viết nó. Hướng dẫn này chỉ nhằm mục đích thể hiện cách BDD để thực hiện điều này.

Luồng công việc của Taylor

Chúng ta hãy bắt đầu bằng cách xem Taylor có thể thiết kế bộ nạp tệp cấu hình này như thế nào. Taylor nói rằng anh thích chỉ tạo một tệp văn bản trống trong trình soạn thảo của mình và sau đó viết cách anh muốn các nhà phát triển có thể tương tác với mã của mình [API]. Trong bối cảnh BDD, điều này thường được gọi là kiểm tra hành vi bên ngoài của phần mềm và các công cụ như Behat là điều tuyệt vời cho việc này. Chúng ta sẽ thấy điều này trong một thời gian ngắn.

Đầu tiên, có thể Taylor sẽ đưa ra quyết định về các tệp cấu hình. Họ nên làm việc như thế nào? Như trong Laravel, chúng ta hãy sử dụng các mảng PHP đơn giản. Một tệp cấu hình ví dụ có thể trông giống như sau:

# config.php

Chủ Đề