Tôi có chuỗi này: "13/10 15:00" và tôi muốn chuyển đổi nó thành dấu thời gian nhưng khi tôi làm điều này:
$timestamp = strtotime["13/10 15:00"];
Nó trả về một giá trị trống.
LAJOS VERES
13,5K7 Huy hiệu vàng43 Huy hiệu bạc56 Huy hiệu Đồng7 gold badges43 silver badges56 bronze badges
Hỏi ngày 13 tháng 10 năm 2013 lúc 15:26Oct 13, 2013 at 15:26
4
Trong mã của bạn strtotime[]
đang cố gắng chuyển đổi 13/10
là ngày thứ mười của tháng thứ 13, sẽ trả lại lỗi.
Nếu bạn muốn phân tích chuỗi ngày có định dạng tùy chỉnh, tốt hơn là sử dụng DateTime :: createdFromFormat [] thay vào đó: thay vào đó:
$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
Glavić
41.8K13 Huy hiệu vàng74 Huy hiệu bạc107 Huy hiệu đồng13 gold badges74 silver badges107 bronze badges
Đã trả lời ngày 13 tháng 10 năm 2013 lúc 15:33Oct 13, 2013 at 15:33
3
$timestamp = strtotime["13-10-2013 15:00"];
Điều này có thể quan trọng:
Các ngày ở các định dạng M/D/Y hoặc D-M-Y được định hướng bằng cách nhìn vào phân tách giữa các thành phần khác nhau: nếu thiết bị phân tách là một dấu gạch chéo [/], thì giả sử M/D/Y của Mỹ; trong khi đó nếu dấu phân cách là một dấu gạch ngang [-] hoặc một dấu chấm [.], thì định dạng D-M-Y châu Âu được giả định.
Để tránh sự mơ hồ tiềm năng, tốt nhất là sử dụng ngày ISO 8601 [yyyy-mm-dd] hoặc datetime :: createFromFormat [] khi có thể.
//uk3.php.net/strtotime
Đã trả lời ngày 13 tháng 10 năm 2013 lúc 15:28Oct 13, 2013 at 15:28
LAJOS VERESLAJOS VERESLajos Veres
13,5K7 Huy hiệu vàng43 Huy hiệu bạc56 Huy hiệu Đồng7 gold badges43 silver badges56 bronze badges
[Php 4, Php 5, Php 7, Php 8]
Strtotime - phân tích về bất kỳ mô tả dữ liệu văn bản tiếng Anh nào vào dấu thời gian UNIX — Parse about any English textual datetime description into a Unix timestamp
Sự mô tả
Strtotime [Chuỗi $datetime
,? int $baseTimestamp
= null
]: int | false[string $datetime
, ?int $baseTimestamp
= null
]:
int|false
Hàm dự kiến sẽ được cung cấp một chuỗi chứa định dạng ngày tiếng Anh và sẽ cố gắng phân tích định dạng đó thành dấu thời gian UNIX [số giây kể từ ngày 1 tháng 1 năm 1970 00:00:00 UTC], liên quan đến dấu thời gian được đưa ra trong baseTimestamp
, hoặc thời gian hiện tại nếu baseTimestamp
không được cung cấp. Phân tích chuỗi ngày được xác định theo định dạng ngày và giờ và có một số cân nhắc tinh tế. Xem xét các chi tiết đầy đủ có được khuyến nghị mạnh mẽ.
Cảnh báo
Dấu thời gian UNIX mà hàm này trả về không chứa thông tin về múi giờ. Để thực hiện các tính toán với thông tin ngày/thời gian, bạn nên sử dụng datetimeimmutable có khả năng hơn.DateTimeImmutable.
Mỗi tham số của hàm này sử dụng múi giờ mặc định trừ khi múi giờ được chỉ định trong tham số đó. Hãy cẩn thận không sử dụng các múi giờ khác nhau trong mỗi tham số trừ khi đó là dự định. Xem DATE_DEFAULT_TIMEZONE_GET [] về các cách khác nhau để xác định múi giờ mặc định.date_default_timezone_get[] on the various ways to define the default time zone.
Thông số
$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
0Một chuỗi ngày/thời gian. Các định dạng hợp lệ được giải thích trong các định dạng ngày và giờ.
________số 8Dấu thời gian được sử dụng làm cơ sở để tính toán ngày tương đối.
Trả về giá trị
Trả về một dấu thời gian về thành công,
$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
2 nếu không.$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
2 otherwise. Errors/Exceptions
Mỗi cuộc gọi đến hàm ngày/giờ sẽ tạo ra
$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
3 nếu múi giờ không hợp lệ. Xem thêm Date_Default_Timezone_set []$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
3 if the time zone is not valid. See also date_default_timezone_set[]Thay đổi
8.0.0 | baseTimestamp bây giờ là không thể. |
Ví dụ
Ví dụ #1 ví dụ Strtotime []strtotime[] example
$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
5Ví dụ #2 Kiểm tra thất bại
$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
6$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
7$dtime = DateTime::createFromFormat["d/m G:i", "13/10 15:00"];
$timestamp = $dtime->getTimestamp[];
8Ghi chú
Ghi chú::
Ngày "tương đối" trong trường hợp này cũng có nghĩa là nếu một thành phần cụ thể của dấu ngày/thời gian không được cung cấp, nó sẽ được lấy nguyên văn từ
baseTimestamp
. Đó là,0, nếu chạy vào ngày 31 tháng 5 năm 2022, sẽ được hiểu là$timestamp = strtotime["13-10-2013 15:00"];
1, sẽ tràn vào dấu thời gian vào$timestamp = strtotime["13-10-2013 15:00"];
2. [Trong một năm bước nhảy, nó sẽ là$timestamp = strtotime["13-10-2013 15:00"];
3.] Sử dụng$timestamp = strtotime["13-10-2013 15:00"];
4 hoặc$timestamp = strtotime["13-10-2013 15:00"];
5 sẽ tránh được vấn đề đó.$timestamp = strtotime["13-10-2013 15:00"];
Ghi chú::
Ngày "tương đối" trong trường hợp này cũng có nghĩa là nếu một thành phần cụ thể của dấu ngày/thời gian không được cung cấp, nó sẽ được lấy nguyên văn từ
baseTimestamp
. Đó là,0, nếu chạy vào ngày 31 tháng 5 năm 2022, sẽ được hiểu là$timestamp = strtotime["13-10-2013 15:00"];
1, sẽ tràn vào dấu thời gian vào$timestamp = strtotime["13-10-2013 15:00"];
2. [Trong một năm bước nhảy, nó sẽ là$timestamp = strtotime["13-10-2013 15:00"];
3.] Sử dụng$timestamp = strtotime["13-10-2013 15:00"];
4 hoặc$timestamp = strtotime["13-10-2013 15:00"];
5 sẽ tránh được vấn đề đó.$timestamp = strtotime["13-10-2013 15:00"];
Ghi chú::
Ngày "tương đối" trong trường hợp này cũng có nghĩa là nếu một thành phần cụ thể của dấu ngày/thời gian không được cung cấp, nó sẽ được lấy nguyên văn từ
baseTimestamp
. Đó là,0, nếu chạy vào ngày 31 tháng 5 năm 2022, sẽ được hiểu là$timestamp = strtotime["13-10-2013 15:00"];
1, sẽ tràn vào dấu thời gian vào$timestamp = strtotime["13-10-2013 15:00"];
2. [Trong một năm bước nhảy, nó sẽ là$timestamp = strtotime["13-10-2013 15:00"];
3.] Sử dụng$timestamp = strtotime["13-10-2013 15:00"];
4 hoặc$timestamp = strtotime["13-10-2013 15:00"];
5 sẽ tránh được vấn đề đó.$timestamp = strtotime["13-10-2013 15:00"];
Nếu số lượng của năm được chỉ định ở định dạng hai chữ số, các giá trị giữa 00-69 được ánh xạ tới 2000-2069 và 70-99 đến 1970-1999. Xem các ghi chú dưới đây để biết sự khác biệt có thể trên các hệ thống 32bit [ngày có thể có thể kết thúc vào ngày 2038-01-19 03:14:07].
Ghi chú::
Ngày "tương đối" trong trường hợp này cũng có nghĩa là nếu một thành phần cụ thể của dấu ngày/thời gian không được cung cấp, nó sẽ được lấy nguyên văn từ
baseTimestamp
. Đó là,0, nếu chạy vào ngày 31 tháng 5 năm 2022, sẽ được hiểu là$timestamp = strtotime["13-10-2013 15:00"];
1, sẽ tràn vào dấu thời gian vào$timestamp = strtotime["13-10-2013 15:00"];
2. [Trong một năm bước nhảy, nó sẽ là$timestamp = strtotime["13-10-2013 15:00"];
3.] Sử dụng$timestamp = strtotime["13-10-2013 15:00"];
4 hoặc$timestamp = strtotime["13-10-2013 15:00"];
5 sẽ tránh được vấn đề đó.DateTime::add[] and DateTime::sub[].$timestamp = strtotime["13-10-2013 15:00"];
Nếu số lượng của năm được chỉ định ở định dạng hai chữ số, các giá trị giữa 00-69 được ánh xạ tới 2000-2069 và 70-99 đến 1970-1999. Xem các ghi chú dưới đây để biết sự khác biệt có thể trên các hệ thống 32bit [ngày có thể có thể kết thúc vào ngày 2038-01-19 03:14:07].
- Phạm vi hợp lệ của dấu thời gian thường là từ Thứ Sáu, ngày 13 tháng 12 năm 1901 20:45:54 UTC đến Tue, ngày 19 tháng 1 năm 2038 03:14:07 UTC. [Đây là các ngày tương ứng với các giá trị tối thiểu và tối đa cho số nguyên có chữ ký 32 bit.]
- Đối với các phiên bản 64 bit của PHP, phạm vi hợp lệ của dấu thời gian là vô hạn một cách hiệu quả, vì 64 bit có thể biểu thị khoảng 293 tỷ năm theo một trong hai hướng.
- Sử dụng chức năng này cho các hoạt động toán học là không nên. Tốt hơn là sử dụng DateTime :: add [] và datetime :: sub [].
- Xem thêm
- Datetimeimmutable
Datetimeimmutable :: createFromFormat [] - phân tích chuỗi thời gian theo một định dạng được chỉ định