Hướng dẫn how to set mysql timezone in php - cách đặt múi giờ mysql trong php

Tôi đang thực hiện một ứng dụng mà tôi cần lưu trữ ngày trong MySQL bằng cách sử dụng chức năng PHP

SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
3.


Những ngày này cần được so sánh trong MySQL bằng cách sử dụng hàm

SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
4 để trả về sự khác biệt theo giờ, ví dụ:

SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;

Nhưng vấn đề là - hàm ngày PHP

SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
5 sử dụng cài đặt múi giờ PHP và chức năng
SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
4 lấy múi giờ MySQL từ máy chủ MySQL.

Tôi đang cố gắng giải quyết việc này:

  1. SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
    
    7 Nó chỉ hoạt động cho PHP.
  2. SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
    
    8 Nó chỉ hoạt động cho PHP.
  3. SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
    
    9 Điều này trở lại trống.
  4. 0 Điều này gây ra lỗi từ bảng điều khiển của MySQL.

Và múi giờ không thay đổi cho mysql.

Có cách nào để thay đổi múi giờ cho cả PHP và MySQL mà không cần phải thực hiện từ bảng điều khiển MySQL hoặc thiết lập thay đổi múi giờ từ đâu đó trong

1 và cung cấp các giá trị này cho cả PHP và MySQL.

Đánh giá cao sự hỗ trợ của bạn.

Hướng dẫn how to set mysql timezone in php - cách đặt múi giờ mysql trong php

Paulie-C

1.5841 Huy hiệu vàng11 Huy hiệu bạc28 Huy hiệu đồng1 gold badge11 silver badges28 bronze badges

Đã hỏi ngày 23 tháng 12 năm 2015 lúc 4:17Dec 23, 2015 at 4:17

Hướng dẫn how to set mysql timezone in php - cách đặt múi giờ mysql trong php

Trong PHP:

Cho mysql:

getOffset() / 60;
$sgn = ($mins < 0 ? -1 : 1);
$mins = abs($mins);
$hrs = floor($mins / 60);
$mins -= $hrs * 60;
$offset = sprintf('%+d:%02d', $hrs*$sgn, $mins);

//Your DB Connection - sample
$db = new PDO('mysql:host=localhost;dbname=test', 'dbuser', 'dbpassword');
$db->exec("SET time_zone='$offset';");

Thời gian PHP và MySQL hiện được đồng bộ hóa trong ứng dụng của bạn. Không cần phải đi cho bảng điều khiển

1 hoặc MySQL!

Đây là từ bài viết này trên SitePoint.

Darryl Hein

Phù bằng vàng 140K8989 gold badges214 silver badges259 bronze badges

Đã trả lời ngày 23 tháng 12 năm 2015 lúc 4:51Dec 23, 2015 at 4:51

Hướng dẫn how to set mysql timezone in php - cách đặt múi giờ mysql trong php

9

Bạn có thể làm điều đó dễ dàng chỉ bằng hai dòng sau của PHP.

$tz = (new DateTime('now', new DateTimeZone('Asia/Kabul')))->format('P');
$pdo->exec("SET time_zone='$tz';");

Đã trả lời ngày 23 tháng 10 năm 2016 lúc 15:39Oct 23, 2016 at 15:39

Hướng dẫn how to set mysql timezone in php - cách đặt múi giờ mysql trong php

MnrmnrMNR

7371 Huy hiệu vàng9 Huy hiệu bạc23 Huy hiệu đồng1 gold badge9 silver badges23 bronze badges

0

Tôi có thể thay đổi múi giờ mặc định MySQL của mình từ phần biến bằng cách chỉnh sửa hàng có nghĩa là "múi giờ" trong phpmyadmin.

Tại đây bạn cũng có thể thay đổi định dạng và nhiều hơn nữa bạn có thể tìm thấy trong hỗ trợ MySQL http://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html, tôi hy vọng nó sẽ giúp bạn.

Hướng dẫn how to set mysql timezone in php - cách đặt múi giờ mysql trong php

Bạn có thể đặt cùng thời gian cho cả PHP và MySQL.

Đã trả lời ngày 23 tháng 12 năm 2015 lúc 5:45Dec 23, 2015 at 5:45

Phương pháp tốt nhất đặt múi giờ trong pdo mysql:

Nếu thích hợp, cho dù do nhầm lẫn bạn có thể sử dụng: ví dụ: ngày ('p'):

new PDO('mysql:host=localhost;dbname=nametable', 
 'username', 
 'password', 
 [PDO::MYSQL_ATTR_INIT_COMMAND =>"SET NAMES utf8;SET time_zone = '".date('P')."'"]);

David Makogon

68.1K21 Huy hiệu vàng142 Huy hiệu bạc184 Huy hiệu đồng21 gold badges142 silver badges184 bronze badges

Đã trả lời ngày 20 tháng 12 năm 2016 lúc 12:54Dec 20, 2016 at 12:54

Hướng dẫn how to set mysql timezone in php - cách đặt múi giờ mysql trong php

ClaryclaryClary

4961 Huy hiệu vàng7 Huy hiệu bạc8 Huy hiệu đồng1 gold badge7 silver badges8 bronze badges

Đối với PHP, hãy sử dụng chức năng này:

date_default_timezone_set()

MySQL:

default-time-zone='timezone'

Nếu bạn có đặc quyền gốc, bạn có thể đặt giá trị múi giờ máy chủ toàn cầu vào thời gian chạy với câu lệnh này:

SET GLOBAL time_zone = timezone;

Các múi giờ trên mỗi kết nối. Mỗi máy khách kết nối có cài đặt múi giờ riêng của họ, được đưa ra bởi phiên

3. Ban đầu, biến phiên lấy giá trị của nó từ biến
4, nhưng máy khách có thể thay đổi múi giờ của chính mình với câu lệnh này:

SET time_zone = timezone;

John

Huy hiệu vàng 12K1190 Huy hiệu bạc157 Huy hiệu đồng11 gold badges90 silver badges157 bronze badges

Đã trả lời ngày 23 tháng 12 năm 2015 lúc 5:01Dec 23, 2015 at 5:01

1

Phương pháp tốt nhất đặt múi giờ trong pdo mysql:

5

Nếu thích hợp, cho dù do nhầm lẫn bạn có thể sử dụng: ví dụ: ngày ('p'):Dec 20, 2016 at 12:46

Hướng dẫn how to set mysql timezone in php - cách đặt múi giờ mysql trong php

ClaryclaryClary

4961 Huy hiệu vàng7 Huy hiệu bạc8 Huy hiệu đồng1 gold badge7 silver badges8 bronze badges

Đối với PHP, hãy sử dụng chức năng này:

Nếu bạn có đặc quyền gốc, bạn có thể đặt giá trị múi giờ máy chủ toàn cầu vào thời gian chạy với câu lệnh này: set the desired timezone in PHP:

Các múi giờ trên mỗi kết nối. Mỗi máy khách kết nối có cài đặt múi giờ riêng của họ, được đưa ra bởi phiên
3. Ban đầu, biến phiên lấy giá trị của nó từ biến
4, nhưng máy khách có thể thay đổi múi giờ của chính mình với câu lệnh này:

John establish the PDO connection to MySql:

SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
1

Huy hiệu vàng 12K1190 Huy hiệu bạc157 Huy hiệu đồng set the same timezone in the PDO resource:

SELECT TIMESTAMPDIFF( hour, NOW(), finalize_at ) FROM plans;
2

Đã trả lời ngày 23 tháng 12 năm 2015 lúc 5:01

Đã trả lời ngày 20 tháng 12 năm 2016 lúc 12:46

Nhờ các câu trả lời khác, tôi đã tìm thấy giải pháp tốt nhất cho tôi, với một vài dòng mã và không cần phải sửa đổi bất kỳ tệp cấu hình máy chủ nào.Apr 22, 2021 at 21:24

Hướng dẫn how to set mysql timezone in php - cách đặt múi giờ mysql trong php

user2342558user2342558user2342558

1) Đặt múi giờ mong muốn trong PHP:5 gold badges29 silver badges52 bronze badges

1

Làm cách nào để đặt Timezone MySQL?

Để chỉ định rõ ràng múi giờ hệ thống cho máy chủ MySQL khi khởi động, hãy đặt biến môi trường TZ trước khi bạn khởi động MySQLD.Nếu bạn khởi động máy chủ bằng MySQLD_SAFE, tùy chọn -TimeZone của nó cung cấp một cách khác để đặt múi giờ hệ thống.Các giá trị cho phép cho TZ và -Timezone phụ thuộc vào hệ thống.set the TZ environment variable before you start mysqld. If you start the server using mysqld_safe, its --timezone option provides another way to set the system time zone. The permissible values for TZ and --timezone are system dependent.

Làm cách nào để đặt múi giờ UTC trong mysql?

Tùy chọn 2: Chỉnh sửa tệp cấu hình MySQL cuộn xuống phần [MySQLD] và tìm dòng thời gian mặc định = "+00: 00".Thay đổi giá trị +00: 00 thành giá trị GMT cho múi giờ bạn muốn.Lưu file và thoát.Trong ví dụ dưới đây, chúng tôi đặt múi giờ của máy chủ MySQL thành +08: 00 (GMT +8).Edit the MySQL Configuration File Scroll down to the [mysqld] section, and find the default-time-zone = "+00:00" line. Change the +00:00 value to the GMT value for the time zone you want. Save the file and exit. In the example below we set the MySQL Server time zone to +08:00 (GMT +8).

Làm cách nào để thay đổi múi giờ mặc định trong PHP?

Hàm date_default_timezone_set () đặt thời gian mặc định được sử dụng bởi tất cả các hàm ngày/thời gian trong tập lệnh.date_default_timezone_set() function sets the default timezone used by all date/time functions in the script.

Làm thế nào tôi có thể nhận được múi giờ trong PHP?

Hàm date_default_timezone_get () trả về thời gian mặc định được sử dụng bởi tất cả các hàm ngày/thời gian trong tập lệnh.date_default_timezone_get() function returns the default timezone used by all date/time functions in the script.