Hướng dẫn convert iso 8601 to datetime php - chuyển đổi iso 8601 sang datetime php

30

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Cách chuyển đổi điều này [ở định dạng ISO8601]: 2014-03-13T09: 05: 50.240Z 2014-03-13T09:05:50.240Z

Để điều này [ở định dạng ngày MySQL]: 2014-03-13 2014-03-13

trong PHP?

Đã hỏi ngày 13 tháng 3 năm 2014 lúc 10:57Mar 13, 2014 at 10:57

2

thử cái này

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[$date]];

Tài liệu chức năng ngày hoàn chỉnh có thể được tìm thấy ở đây: //php.net/manual/en/function.date.php

Hàm Php "Strtotime" không làm gì khác sau đó chuyển đổi thời gian của bạn thành dấu thời gian UNIX.

Hy vọng tôi có thể giúp đỡ :]

P.S .: Chỉ trong trường hợp Strtotime sẽ trả về 0 Hãy thử bằng cách này:

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];

Đã trả lời ngày 13 tháng 3 năm 2014 lúc 11:07Mar 13, 2014 at 11:07

ThatmsgthatmsgThatMSG

1.3961 Huy hiệu vàng15 Huy hiệu bạc26 Huy hiệu đồng1 gold badge15 silver badges26 bronze badges

1

Vì PHP

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];
4, bạn cũng có thể làm điều đó bằng cách sử dụng OOP và
$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];
5 [tất nhiên nếu bạn thích OOP]:OOP and
$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];
5 as well [of course if you prefer OOP]:

$now = new DateTime["2014-03-13T09:05:50.240Z"];
echo $now->format['Y-m-d'];    // MySQL datetime format

Đã trả lời ngày 10 tháng 1 năm 2017 lúc 17:30Jan 10, 2017 at 17:30

FaisalfaisalFaisal

4.4032 Huy hiệu vàng39 Huy hiệu bạc49 Huy hiệu đồng2 gold badges39 silver badges49 bronze badges

Không có lý do để sử dụng các hàm thời gian không hiệu quả. Cách hiệu quả nhất là chỉ cần trích xuất 10 ký tự đầu tiên:

substr[$date,0,10]

Mọi người, thực sự được mã hóa cho năm ≥10000, có thể sử dụng:

substr[$date,0,strpos[$date,"T"]]

Đã trả lời ngày 8 tháng 5 năm 2019 lúc 20:42May 8, 2019 at 20:42

WiimmwiimmWiimm

2.5771 Huy hiệu vàng13 Huy hiệu bạc22 Huy hiệu đồng1 gold badge13 silver badges22 bronze badges

2

Chỉ cần chuyển đổi mô tả DateTime thành dấu thời gian UNIX bằng cách sử dụng với Strtotime và sau đó là năm định dạng bằng cách sử dụng các định dạng ngày

Hãy thử nó chắc chắn sẽ làm việc cho bạn.

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[$date]];

Đã trả lời ngày 13 tháng 3 năm 2014 lúc 11:03Mar 13, 2014 at 11:03

Mitul Shahmitul ShahMitul Shah

1.5811 Huy hiệu vàng12 Huy hiệu bạc33 Huy hiệu đồng1 gold badge12 silver badges33 bronze badges

3

Đối với những người sử dụng carbon [thư viện PHP],

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];
6 hoạt động khá tốt:

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];
7

//carbon.nesbot.com/docs/

Đã trả lời ngày 4 tháng 6 năm 2021 lúc 13:37Jun 4, 2021 at 13:37

Andromedaandromedaandromeda

3.9165 huy hiệu vàng27 Huy hiệu bạc39 Huy hiệu đồng5 gold badges27 silver badges39 bronze badges

Hôm nay tôi đã xuất bản một gói Interitty/Utils liên quan đến, trong số những thứ khác, định dạng ISO-8601 và có lẽ tất cả các hoán vị của tiêu chuẩn này.

Tôi hy vọng nó cũng sẽ giúp bạn.

$dateTimeFactory = new Interitty\Utils\DateTimeFactory[];
$dateTime = $dateTimeFactory->createFromIso8601['1989-12-17T12:00:00Z'];

Đã trả lời ngày 12 tháng 7 lúc 15:41Jul 12 at 15:41

Echo'default Timezone: '. \ date_default_timezone_get []; 2014-03-13T09:05:50.240Z

// Xem //tools.ietf.org/html/rfc3339#section-5.8 2014-03-13

// Báo cáo lỗi về hỗ trợ phân số bị thiếu: //bugs.php.net/bug.php?id=51950

// Yêu cầu tính năng hỗ trợ phân số trong Constructor: //bugs.php.net/bug.php?id=49779Mar 13, 2014 at 10:57

2

$ dt2 = \ dateTime :: createdFromFormat ['y-m-d \ th: m: i.uo', '2012-10-17'];

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[$date]];

var_dump [$ dt2]; // sai

$ dt2 = new \ dateTime ['2012-10-17'];

echo'2012-10-17 được định dạng => '. $ dt2-> định dạng ['y-m-d \ th: i: s.up'];

$ dt3 = \ dateTime :: createdFromFormat ['y-m-d \ th: m: i.uo', '1990-12-31t23: 59: 60z']; // Bước nhảy vọt thứ hai

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];

var_dump [$ dt3]; // saiMar 13, 2014 at 11:07

$ dt3 = new \ dateTime ['1990-12-31t23: 59: 60z'];ThatMSG

echo'1990-12-31T23: 59: 60Z định dạng => '. $ dt3-> định dạng ['y-m-d \ th: i: s.up'];1 gold badge15 silver badges26 bronze badges

1

$ dt4 = \ dateTime :: createdFromFormat [\ datetime :: iso8601, '2004-02-13t15: 19: 21+00: 00'];OOP and

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];
5 as well [of course if you prefer OOP]:

$now = new DateTime["2014-03-13T09:05:50.240Z"];
echo $now->format['Y-m-d'];    // MySQL datetime format

echo'2004-02-13t15: 19: 21+00: 00 định dạng => '. $ dt4-> định dạng ['y-m-d \ th: i: s.up'];Jan 10, 2017 at 17:30

$ dt5 = \ dateTime :: createdFromFormat ['y-m-d \ th: m: i.uo', '1985-04-12t23: 20: 50.52z'];Faisal

4.3742 Huy hiệu vàng39 Huy hiệu bạc49 Huy hiệu Đồng2 gold badges39 silver badges49 bronze badges

Không có lý do để sử dụng các hàm thời gian không hiệu quả. Cách hiệu quả nhất là chỉ cần trích xuất 10 ký tự đầu tiên:

substr[$date,0,10]

Mọi người, thực sự được mã hóa cho năm ≥10000, có thể sử dụng:

substr[$date,0,strpos[$date,"T"]]

Đã trả lời ngày 8 tháng 5 năm 2019 lúc 20:42May 8, 2019 at 20:42

WiimmwiimmWiimm

2.5711 Huy hiệu vàng13 Huy hiệu bạc22 Huy hiệu đồng1 gold badge13 silver badges22 bronze badges

2

Chỉ cần chuyển đổi mô tả DateTime thành dấu thời gian UNIX bằng cách sử dụng với Strtotime và sau đó là năm định dạng bằng cách sử dụng các định dạng ngày

Hãy thử nó chắc chắn sẽ làm việc cho bạn.

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[$date]];

Đã trả lời ngày 13 tháng 3 năm 2014 lúc 11:03Mar 13, 2014 at 11:03

Mitul Shahmitul ShahMitul Shah

1.5811 Huy hiệu vàng12 Huy hiệu bạc33 Huy hiệu đồng1 gold badge12 silver badges33 bronze badges

3

Đối với những người sử dụng carbon [thư viện PHP],

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];
6 hoạt động khá tốt:

$date = '2014-03-13T09:05:50.240Z';

$fixed = date['Y-m-d', strtotime[substr[$date,0,10]]];
7

//carbon.nesbot.com/docs/

Đã trả lời ngày 4 tháng 6 năm 2021 lúc 13:37Jun 4, 2021 at 13:37

Andromedaandromedaandromeda

3,8665 huy hiệu vàng27 Huy hiệu bạc39 Huy hiệu đồng5 gold badges27 silver badges39 bronze badges

Hôm nay tôi đã xuất bản một gói Interitty/Utils liên quan đến, trong số những thứ khác, định dạng ISO-8601 và có lẽ tất cả các hoán vị của tiêu chuẩn này.

Tôi hy vọng nó cũng sẽ giúp bạn.

$dateTimeFactory = new Interitty\Utils\DateTimeFactory[];
$dateTime = $dateTimeFactory->createFromIso8601['1989-12-17T12:00:00Z'];

Đã trả lời ngày 12 tháng 7 lúc 15:41Jul 12 at 15:41

Không phải là câu trả lời bạn đang tìm kiếm? Duyệt các câu hỏi khác được gắn thẻ Php MySQL SQL Date DateTime hoặc đặt câu hỏi của riêng bạn.

Lớp DateTime PHP - Phân tích và định dạng của ISO8601 với hoặc w/o phân số của một giây

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

Echo'default Locale: '. \ Locale :: getDefault [];
Echo'default Locale: '. \ Locale :: getDefault []; 'default locale: ' . \Locale::getDefault[];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get []; 'default timezone: ' . \date_default_timezone_get[];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get [];
// Xem //tools.ietf.org/html/rfc3339#section-5.8
// Báo cáo lỗi về hỗ trợ phân số bị thiếu: //bugs.php.net/bug.php?id=51950
// Yêu cầu tính năng hỗ trợ phân số trong Constructor: //bugs.php.net/bug.php?id=49779dt2 = \DateTime::createFromFormat['Y-m-d\TH:m:i.uO', '2012-10-17'];
$ dt2 = \ dateTime :: createdFromFormat ['y-m-d \ th: m: i.uo', '2012-10-17'];$dt2]; // false
var_dump [$ dt2]; // saidt2 = new \DateTime['2012-10-17'];
$ dt2 = new \ dateTime ['2012-10-17']; '2012-10-17 formatted => ' . $dt2->format['Y-m-d\TH:i:s.uP'];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get [];dt3 = \DateTime::createFromFormat['Y-m-d\TH:m:i.uO', '1990-12-31T23:59:60Z']; // leap second
// Xem //tools.ietf.org/html/rfc3339#section-5.8$dt3]; // false
// Báo cáo lỗi về hỗ trợ phân số bị thiếu: //bugs.php.net/bug.php?id=51950dt3 = new \DateTime['1990-12-31T23:59:60Z'];
// Yêu cầu tính năng hỗ trợ phân số trong Constructor: //bugs.php.net/bug.php?id=49779 '1990-12-31T23:59:60Z formatted => ' . $dt3->format['Y-m-d\TH:i:s.uP'];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get [];dt4 = \DateTime::createFromFormat[\DateTime::ISO8601, '2004-02-13T15:19:21+00:00'];
// Xem //tools.ietf.org/html/rfc3339#section-5.8 '2004-02-13T15:19:21+00:00 formatted => ' . $dt4->format['Y-m-d\TH:i:s.uP'];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get [];dt5 = \DateTime::createFromFormat['Y-m-d\TH:m:i.uO', '1985-04-12T23:20:50.52Z'];
// Xem //tools.ietf.org/html/rfc3339#section-5.8 '1985-04-12T23:20:50.52Z formatted => ' . $dt5->format['Y-m-d\TH:i:s.uP'];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get []; '\DateTime::createFromFormat[DateTime::ISO8601, "1985-04-12T23:20:50.52Z"] => ';
// Xem //tools.ietf.org/html/rfc3339#section-5.8datetime = \DateTime::createFromFormat[\DateTime::ISO8601, '1985-04-12T23:20:50.52Z'];
// Báo cáo lỗi về hỗ trợ phân số bị thiếu: //bugs.php.net/bug.php?id=51950$datetime];
// Yêu cầu tính năng hỗ trợ phân số trong Constructor: //bugs.php.net/bug.php?id=49779 'new \DateTime["1985-04-12T23:20:50.52Z"] => ';
$ dt2 = \ dateTime :: createdFromFormat ['y-m-d \ th: m: i.uo', '2012-10-17'];datetime = new \DateTime['1985-04-12T23:20:50.52Z'];
// Báo cáo lỗi về hỗ trợ phân số bị thiếu: //bugs.php.net/bug.php?id=51950$datetime];
// Yêu cầu tính năng hỗ trợ phân số trong Constructor: //bugs.php.net/bug.php?id=49779 '1985-04-12T23:20:50.52Z formatted [P] => ' . $datetime->format['Y-m-d\TH:i:s.uP'];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get [];
$ dt2 = \ dateTime :: createdFromFormat ['y-m-d \ th: m: i.uo', '2012-10-17'];datetime = new \DateTime['1985-04-12T23:20:50.52Z'];
// Báo cáo lỗi về hỗ trợ phân số bị thiếu: //bugs.php.net/bug.php?id=51950$datetime];
// Yêu cầu tính năng hỗ trợ phân số trong Constructor: //bugs.php.net/bug.php?id=49779datetimez = clone $datetime;
$ dt2 = \ dateTime :: createdFromFormat ['y-m-d \ th: m: i.uo', '2012-10-17'];datetime->setTimeZone[new \DateTimeZone['Zulu']];
var_dump [$ dt2]; // saidatetime->setTimeZone[new \DateTimeZone['Etc/UTC']];
$ dt2 = new \ dateTime ['2012-10-17'];datetime->setTimeZone[new \DateTimeZone['UTC']];
echo'2012-10-17 được định dạng => '. $ dt2-> định dạng ['y-m-d \ th: i: s.up']; '1985-04-12T23:20:50.52Z clone Z formatted => ' . $datetime->format['Y-m-d\TH:i:s.u\Z'];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get []; '1985-04-12T23:20:50.52Z clone Z formatted => ' . $datetime->format['Y-m-d\TH:i:s.uP'];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get [];iso8601_p = sprintf[
// Xem //tools.ietf.org/html/rfc3339#section-5.8%s%03d%s",
// Báo cáo lỗi về hỗ trợ phân số bị thiếu: //bugs.php.net/bug.php?id=51950datetime->format["Y-m-d\TH:i:s\."],
// Yêu cầu tính năng hỗ trợ phân số trong Constructor: //bugs.php.net/bug.php?id=49779$datetime->format["u"] / 1000],
$ dt2 = \ dateTime :: createdFromFormat ['y-m-d \ th: m: i.uo', '2012-10-17'];datetime->format["P"]
var_dump [$ dt2]; // sai
$ dt2 = new \ dateTime ['2012-10-17']; '1985-04-12T23:20:50.52Z clone custom formatted P => ' . $iso8601_p;
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get [];iso8601_z = sprintf[
// Xem //tools.ietf.org/html/rfc3339#section-5.8%s%03dZ",
// Báo cáo lỗi về hỗ trợ phân số bị thiếu: //bugs.php.net/bug.php?id=51950datetime->format["Y-m-d\TH:i:s\."],
// Yêu cầu tính năng hỗ trợ phân số trong Constructor: //bugs.php.net/bug.php?id=49779$datetime->format["u"] / 1000]
var_dump [$ dt2]; // sai
$ dt2 = new \ dateTime ['2012-10-17']; '1985-04-12T23:20:50.52Z clone custom formatted Z => ' . $iso8601_z;
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get []; '\DateTime::diff[] with fractions of a second granularity is not possible…';
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get []; "Propably need to use format['u'] and compare those when treated as integer…";
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get []; 'NOW with fractions [P]: ' . \DateTime::createFromFormat['U.u', sprintf['%.6F', microtime[true]]]->format['Y-m-d\TH:i:s.uP'];
echophp_eol; PHP_EOL;
Echo'default Timezone: '. \ date_default_timezone_get []; 'NOW with fractions [O]: ' . \DateTime::createFromFormat['U.u', sprintf['%.6F', microtime[true]]]->format['Y-m-d\TH:i:s.uO'];
echophp_eol; PHP_EOL;

Bài Viết Liên Quan

Chủ Đề