Hướng dẫn ngày php chuyển đổi thành dấu thời gian

Phương pháp này hoạt động trên cả Windows và UNIX và nhận thức được vùng thời gian, đó có lẽ là những gì bạn muốn nếu bạn làm việc với ngày.both Windows and Unix and is time-zone aware, which is probably what you want if you work with dates.

Nếu bạn không quan tâm đến múi giờ hoặc muốn sử dụng múi giờ mà máy chủ của bạn sử dụng:

$d = DateTime::createFromFormat('d-m-Y H:i:s', '22-09-2008 00:00:00');
if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}

1222093324 (điều này sẽ khác nhau tùy thuộc vào múi giờ máy chủ của bạn ...) (This will differ depending on your server time zone...)

Nếu bạn muốn chỉ định trong múi giờ nào, ở đây EST. (Giống như New York.)

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}

1222093305

Hoặc nếu bạn muốn sử dụng UTC. (Giống như "GMT".)

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}

1222093289

Bất kể, nó luôn luôn là một điểm khởi đầu tốt là nghiêm ngặt khi phân tích các chuỗi vào dữ liệu có cấu trúc. Nó có thể tiết kiệm gỡ lỗi khó xử trong tương lai. Do đó, tôi khuyên bạn nên luôn chỉ định định dạng ngày.

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

Giáo sư Falken

23.6K18 Huy hiệu vàng99 Huy hiệu bạc168 Huy hiệu đồng18 gold badges99 silver badges168 bronze badges

Đã trả lời ngày 22 tháng 9 năm 2008 lúc 8:45Sep 22, 2008 at 8:45

OwenowenOwen

Huy hiệu vàng 80,8K2121 gold badges117 silver badges113 bronze badges

10

Ngoài ra còn có Strptime () mong đợi chính xác một định dạng:strptime() which expects exactly one format:

$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);

Giáo sư Falken

23.6K18 Huy hiệu vàng99 Huy hiệu bạc168 Huy hiệu đồng18 gold badges99 silver badges168 bronze badges

Đã trả lời ngày 22 tháng 9 năm 2008 lúc 8:45Sep 22, 2008 at 8:52

OwenowenArmin Ronacher

Huy hiệu vàng 80,8K2112 gold badges65 silver badges69 bronze badges

6

Ngoài ra còn có Strptime () mong đợi chính xác một định dạng:

$dateTime = new DateTime('2008-09-22'); 
echo $dateTime->format('U'); 

// or 

$date = new DateTime('2008-09-22');
echo $date->getTimestamp();

Đã trả lời ngày 22 tháng 9 năm 2008 lúc 8:52

$date = date_create('2008-09-22');
echo date_format($date, 'U');

// or

$date = date_create('2008-09-22');
echo date_timestamp_get($date);

Armin Ronacherarmin Ronacher

$date = DateTime::createFromFormat('!d-m-Y', '22-09-2008');
echo $dateTime->format('U'); 

// or

$date = date_parse_from_format('!d-m-Y', '22-09-2008');
echo date_format($date, 'U');

31.5K12 Huy hiệu vàng65 Huy hiệu bạc69 Huy hiệu Đồng

Không có API NO___TRANS___PRE___28:

$formatter = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'GMT',
    IntlDateFormatter::GREGORIAN,
    'dd-MM-yyyy'
);
echo $formatter->parse('22-09-2008');

Điều tương tự với API thủ tục:

Nếu những điều trên không thành công vì bạn đang sử dụng định dạng không được hỗ trợ, bạn có thể sử dụngMay 17, 2011 at 9:01

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

Lưu ý rằng nếu bạn không đặt NO___Trans___Pre___29, phần thời gian sẽ được đặt thành thời gian hiện tại, khác với bốn phần đầu tiên sẽ sử dụng nửa đêm khi bạn bỏ qua thời gian.Gordon

Tuy nhiên, một lựa chọn khác là sử dụng API NO___Trans___PRE___30:72 gold badges527 silver badges552 bronze badges

3

Trừ khi bạn đang làm việc với các chuỗi ngày địa phương, sự lựa chọn dễ dàng hơn là DateTime.

Đã trả lời ngày 17 tháng 5 năm 2011 lúc 9:01

Gordongordon

308K72 Huy hiệu vàng527 Huy hiệu bạc552 Huy hiệu đồng

Hãy cẩn thận với các chức năng như no___trans___pre___31 mà cố gắng "đoán" ý của bạn (tất nhiên không đoán, các quy tắc ở đây).

Thật vậy,

$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
2 sẽ được phân tích cú pháp là ngày 22 tháng 9 năm 2008, vì đó là điều hợp lý duy nhất.Sep 22, 2008 at 16:22

Làm thế nào

$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
3 sẽ được phân tích cú pháp? Có lẽ ngày 09 tháng 8 năm 2008.daremon

Thế còn

$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
4? Một số phiên bản của PHP phân tích này là ngày 20 tháng 10 năm 2008.2 gold badges27 silver badges27 bronze badges

4

Phương pháp này hoạt động trên cả Windows và UNIX và nhận thức được vùng thời gian, đó có lẽ là những gì bạn muốn nếu bạn làm việc với ngày.both Windows and Unix and is time-zone aware, which is probably what you want if you work with dates.

Nếu bạn không quan tâm đến múi giờ hoặc muốn sử dụng múi giờ mà máy chủ của bạn sử dụng:

$d = DateTime::createFromFormat('d-m-Y H:i:s', '22-09-2008 00:00:00');
if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}

1222093324 (điều này sẽ khác nhau tùy thuộc vào múi giờ máy chủ của bạn ...) (This will differ depending on your server time zone...)

Nếu bạn muốn chỉ định trong múi giờ nào, ở đây EST. (Giống như New York.)

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}

1222093305

Hoặc nếu bạn muốn sử dụng UTC. (Giống như "GMT".)

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}

1222093289

Bất kể, nó luôn luôn là một điểm khởi đầu tốt là nghiêm ngặt khi phân tích các chuỗi vào dữ liệu có cấu trúc. Nó có thể tiết kiệm gỡ lỗi khó xử trong tương lai. Do đó, tôi khuyên bạn nên luôn chỉ định định dạng ngày.

Giáo sư FalkenOct 11, 2013 at 14:21

23.6K18 Huy hiệu vàng99 Huy hiệu bạc168 Huy hiệu đồngProf. Falken

23.6K18 Huy hiệu vàng99 Huy hiệu bạc168 Huy hiệu đồng18 gold badges99 silver badges168 bronze badges

1

Đã trả lời ngày 22 tháng 9 năm 2008 lúc 8:45

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
1

OwenowenSep 22, 2008 at 8:44

Huy hiệu vàng 80,8K21Till

Ngoài ra còn có Strptime () mong đợi chính xác một định dạng:4 gold badges58 silver badges88 bronze badges

3

Đã trả lời ngày 22 tháng 9 năm 2008 lúc 8:52

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
2

Armin Ronacherarmin Ronacher

31.5K12 Huy hiệu vàng65 Huy hiệu bạc69 Huy hiệu Đồng

Không có API NO___TRANS___PRE___28:Apr 6, 2015 at 22:24

klit67klit67klit67

Điều tương tự với API thủ tục:6 silver badges4 bronze badges

1

Nếu những điều trên không thành công vì bạn đang sử dụng định dạng không được hỗ trợ, bạn có thể sử dụng

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
3

Lưu ý rằng nếu bạn không đặt NO___Trans___Pre___29, phần thời gian sẽ được đặt thành thời gian hiện tại, khác với bốn phần đầu tiên sẽ sử dụng nửa đêm khi bạn bỏ qua thời gian.

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

Tuy nhiên, một lựa chọn khác là sử dụng API NO___Trans___PRE___30:Sep 8, 2010 at 16:07

1

Trừ khi bạn đang làm việc với các chuỗi ngày địa phương, sự lựa chọn dễ dàng hơn là DateTime.

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
4

Đã trả lời ngày 17 tháng 5 năm 2011 lúc 9:01

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

kk.

Gordongordon11 gold badges34 silver badges65 bronze badges

308K72 Huy hiệu vàng527 Huy hiệu bạc552 Huy hiệu đồngFeb 9, 2018 at 10:03

2

Hãy cẩn thận với các chức năng như no___trans___pre___31 mà cố gắng "đoán" ý của bạn (tất nhiên không đoán, các quy tắc ở đây).

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
5

Thật vậy,

$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
2 sẽ được phân tích cú pháp là ngày 22 tháng 9 năm 2008, vì đó là điều hợp lý duy nhất.Jun 11, 2012 at 10:36

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

Làm thế nào

$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
3 sẽ được phân tích cú pháp? Có lẽ ngày 09 tháng 8 năm 2008.Victor

Thế còn

$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
4? Một số phiên bản của PHP phân tích này là ngày 20 tháng 10 năm 2008.1 gold badge25 silver badges28 bronze badges

1

Vì vậy, nếu bạn chắc chắn rằng đầu vào của bạn ở định dạng no___trans___pre___35, tốt hơn là sử dụng giải pháp được cung cấp bởi @Armin Ronacher.

  • http://nl3.php.net/manual/en/function.strptime.php#86572

Đã trả lời ngày 22 tháng 9 năm 2008 lúc 16:22

Example:

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
6

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

Gordon

308K72 Huy hiệu vàng527 Huy hiệu bạc552 Huy hiệu đồng72 gold badges527 silver badges552 bronze badges

Đã trả lời ngày 7 tháng 1 năm 2010 lúc 13:26Jan 7, 2010 at 13:26

Blavlablavlablavla

5435 Huy hiệu bạc4 Huy hiệu đồng5 silver badges4 bronze badges

Nếu bạn muốn biết chắc chắn liệu một ngày có được phân tích cú pháp vào thứ gì đó bạn mong đợi hay không, bạn có thể sử dụng no___trans___pre___47:

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
7

Rõ ràng trong trường hợp này, nhưng ví dụ:

$dateTime = new DateTime('2008-09-22'); 
echo $dateTime->format('U'); 

// or 

$date = new DateTime('2008-09-22');
echo $date->getTimestamp();
8 có thể là ngày 3 tháng 4 hoặc ngày 4 tháng 3 tùy thuộc vào nơi bạn đến :)

Đã trả lời ngày 13 tháng 12 năm 2012 lúc 3:32Dec 13, 2012 at 3:32

Ja͢ckja͢ckJa͢ck

168K36 Huy hiệu vàng256 Huy hiệu bạc 305 Huy hiệu Đồng36 gold badges256 silver badges305 bronze badges

1

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
8

Đã trả lời ngày 31 tháng 7 năm 2014 lúc 7:31Jul 31, 2014 at 7:31

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('EST')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
9

Đã trả lời ngày 11 tháng 2 năm 2012 lúc 11:26Feb 11, 2012 at 11:26

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

Phil Jacksonphil JacksonPhil Jackson

10.2K22 Huy hiệu vàng96 Huy hiệu bạc129 Huy hiệu đồng22 gold badges96 silver badges129 bronze badges

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
0

Nếu bạn muốn, hãy đặt nó vào thời gian đầu vào MySQL. Những điều trên hoạt động rất tốt (chỉ trong Php 5 trở lên):

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
1

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

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

Insigninsigninsign

4.75736 huy hiệu bạc32 huy hiệu đồng36 silver badges32 bronze badges

Đây là cách tôi làm điều đó:

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
2

Bằng cách này, bạn cho chức năng biết bạn đang sử dụng định dạng ngày nào và thậm chí chỉ định múi giờ.

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

BDL

20.2K17 Huy hiệu vàng51 Huy hiệu bạc51 Huy hiệu đồng17 gold badges51 silver badges51 bronze badges

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

Xin cẩn thận về thời gian/vùng nếu bạn đặt nó để lưu ngày trong cơ sở dữ liệu, vì tôi gặp sự cố khi tôi so sánh ngày từ mysql đã chuyển đổi thành no___trans___pre___49 bằng

$dateTime = new DateTime('2008-09-22'); 
echo $dateTime->format('U'); 

// or 

$date = new DateTime('2008-09-22');
echo $date->getTimestamp();
3. Bạn phải sử dụng chính xác thời gian/vùng trước khi chuyển đổi ngày thành dấu thời gian nếu không, strtotime () sẽ sử dụng múi giờ máy chủ mặc định.

Vui lòng xem ví dụ này: https://3v4l.org/brlmv

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
3

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

Manoj Sharma

1.4672 Huy hiệu vàng13 Huy hiệu bạc20 Huy hiệu Đồng2 gold badges13 silver badges20 bronze badges

Đã trả lời ngày 19 tháng 5 năm 2016 lúc 11:50May 19, 2016 at 11:50

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

AkamakamAkam

99315 Huy hiệu bạc23 Huy hiệu đồng15 silver badges23 bronze badges

Đối với php> = 5.3, 7 & 8, điều này có thể hoạt động-

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
4

Đã trả lời ngày 24 tháng 3 lúc 17:03Mar 24 at 17:03

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

Raju Ahmedraju AhmedRaju Ahmed

3243 Huy hiệu bạc17 Huy hiệu đồng3 silver badges17 bronze badges

Nếu bạn đã có ngày ở định dạng đó, bạn chỉ cần gọi chức năng "Strtotime" trong PHP.strtotime" function in PHP.

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
5

Hoặc trong một dòng duy nhất:

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
6

Ngắn và đơn giản.

Đã trả lời ngày 12 tháng 8 lúc 16:24Aug 12 at 16:24

Hướng dẫn ngày php chuyển đổi thành dấu thời gian

J.C.J.C.J.C.

Huy hiệu đồng 1141 Bạc4 Huy hiệu đồng1 silver badge4 bronze badges

Nếu bạn đang tìm cách chuyển đổi DateTime UTC (no___trans___pre___51) thành dấu thời gian, thì đây là cách bạn làm điều đó:

$d = DateTime::createFromFormat(
    'd-m-Y H:i:s',
    '22-09-2008 00:00:00',
    new DateTimeZone('UTC')
);

if ($d === false) {
    die("Incorrect date string");
} else {
    echo $d->getTimestamp();
}
7

Đã trả lời ngày 27 tháng 2 năm 2016 lúc 15:52Feb 27, 2016 at 15:52

ObihillobihillObiHill

11.1K19 Huy hiệu vàng82 Huy hiệu bạc129 Huy hiệu đồng19 gold badges82 silver badges129 bronze badges

Làm thế nào tôi có thể hẹn giờ trong PHP?

Hàm strtotime () phân tích dữ liệu văn bản tiếng Anh vào dấu thời gian unix (số giây kể từ ngày 1 tháng 1 năm 1970 00:00:00 gmt). Lưu ý: Nếu năm được chỉ định ở định dạng hai chữ số, các giá trị trong khoảng 0-69 được ánh xạ tới 2000-2069 và các giá trị trong khoảng 70-100 được ánh xạ tới 1970-2000. parses an English textual datetime into a Unix timestamp (the number of seconds since January 1 1970 00:00:00 GMT). Note: If the year is specified in a two-digit format, values between 0-69 are mapped to 2000-2069 and values between 70-100 are mapped to 1970-2000.

Định dạng dấu thời gian trong PHP là gì?

Dấu thời gian là gì?Dấu thời gian trong PHP là một giá trị số tính bằng giây giữa thời gian và giá trị hiện tại vào ngày 1 tháng 1 năm 1970 00:00:00 Thời gian trung bình của Greenwich (GMT).Giá trị được trả về bởi hàm thời gian phụ thuộc vào múi giờ mặc định.Múi giờ mặc định được đặt trong PHP.a numeric value in seconds between the current time and value as at 1st January, 1970 00:00:00 Greenwich Mean Time (GMT). The value returned by the time function depends on the default time zone. The default time zone is set in the php.

Làm cách nào để thay đổi định dạng ngày trong PHP?

Thay đổi yyyy-mm-dd thành dd-mm-yyyy trong ví dụ dưới đây, chúng tôi có ngày 2019-09-15 ở định dạng yyyy-mm-dd và chúng tôi sẽ chuyển đổi nó thành 15-09-2019 trong DD-MM-YYYYđịnh dạng.$ orgdate = "2019-09-15"; $ newDate = date ("d-m-y", strtotime ($ orgdate)); echo "định dạng ngày mới là:".$orgDate = "2019-09-15"; $newDate = date("d-m-Y", strtotime($orgDate)); echo "New date format is: ".

Php Mktime là gì?

Hàm mktime () là một hàm sẵn có trong PHP được sử dụng để trả về dấu thời gian UNIX cho một ngày.Dấu thời gian trả về một số nguyên dài chứa số giây giữa kỷ nguyên Unix (ngày 1 tháng 1 năm 1970, 00:00:00 GMT) và thời gian được chỉ định.an inbuilt function in PHP which is used to return the Unix timestamp for a date. The timestamp returns a long integer containing the number of seconds between the Unix Epoch (January 1, 1970, 00:00:00 GMT) and the time specified.