Hướng dẫn php strtotime milliseconds

I have date format like '25 May 2016 10:45:53:567'.

I want to convert into the time stamp.

strtotime function returns empty.

$date = '25 May 2016 10:45:53:567';
echo strtotime($date); 
// returns empty

When I removed the milliseconds, it's working.

$date = '25 May 2016 10:45:53';
echo strtotime($date);
// returns 1464153353

Please sort out my issue. Thanks in advance.

asked May 28, 2016 at 10:02

TamilvananTamilvanan

6981 gold badge7 silver badges21 bronze badges

6

Use DateTime:

$date = DateTime::createFromFormat('d M Y H:i:s:u', '25 May 2016 10:45:53:000');
echo $date->getTimestamp();
// 1464165953

// With microseconds
echo $date->getTimestamp().'.'.$date->format('u');
// 1464165953.000000

answered May 28, 2016 at 10:11

Hướng dẫn php strtotime milliseconds

PytonPyton

1,2638 silver badges19 bronze badges

3

Split string:

$date = '25 May 2016 10:45:53:001';
preg_match('/^(.+):(\d+)$/i', $date, $matches);
echo 'timestamp: ' . strtotime($matches[1]) . PHP_EOL;
echo 'milliseconds: ' . $matches[2] . PHP_EOL;
// timestamp: 1464162353 
// milliseconds: 001 

answered May 28, 2016 at 10:21

2

Use Datetime instead of date and strtotime.

//using date and strtotime
$date = '25 May 2016 10:45:53:000';
echo "Using date and strtotime: ".date("Y-m-d H:i:s.u", strtotime($date)); 

echo "\n";\

//using DateTime
$date = new DateTime();
$date->createFromFormat('d M Y H:i:s.u', '25 May 2016 10:45:53:000');
echo "Using DateTime: ".$date->format("Y-m-d H:i:s.u"); 
// since you want timestamp
echo $date->getTimestamp();
// Output
// Using date and strtotime: 1969-12-31 16:00:00.000000
// Using DateTime: 2016-05-28 03:25:22.000000

Example

answered May 28, 2016 at 10:24

I want to get a difference between two dates in Php in milliseconds, How can I do this? I tried with the following code but not working for me, I am getting the result in seconds, how can I convert to milliseconds? Here is my code.

$expiration_time=$row['time'];
$date = date('Y-m-d H:i:s');
$date1 = strtotime($expiration_time);  
$date2 = strtotime($date);  
echo $diff = abs($date2 - $date1);

Waqas Ahmad

4161 gold badge3 silver badges16 bronze badges

asked Apr 10, 2019 at 12:17

1

$milliseconds = strtotime($date) * 1000;

Just multiply it by 1000.

Although I do prefer to use:

$milliseconds = round(microtime(true) * 1000);

answered Apr 10, 2019 at 12:20

LulceltechLulceltech

1,6529 silver badges21 bronze badges

2

You can use createFromFormat method of DateTime or, better, DateTimeImmutable while passing timezone as third parameter. This way you do not need to rely on default timezone, which is never a good idea

$datetime = DateTimeImmutable::createFromFormat('Y-m-d H:i', '2016-03-22 14:30', new DateTimeZone('Australia/Sydney'));
echo $datetime->getTimestamp();
echo $datetime->format(DateTime::ISO8601);

You can also convert it to another timezone, note that it produced new DateTimeImmutable and original left untouched:

echo $utcTzDatetime = $date->setTimezone(new DateTimeZone('UTC'));
echo $utcTzDatetime->format(DateTime::ISO8601);
echo $datetime->format(DateTime::ISO8601);

Upd:

If format is not fixed, you can let DateTime guess it:

new DateTimeImmutable($time, new DateTimeZone('Australia/Sydney'));

But be aware that if $time string contains timezone or offset, eg '2016-03-22T14:30-0500', it will have priority over timezone parameter and will result in different timestamp!

Hàm microtime() sẽ lấy timestamp của thời điểm hiện tại bao gồm cả microseconds.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Cú pháp

Cú phápmicrotime( $is_float);

Trong đó

  • $is_float là tham số. Nếu mang giá trị TRUE hàm sẽ trả về số thuộc kiểu float, nếu không truyền hoặc mang giá trị FALSE, hàm sẽ chả về chuỗi theo dạng" microseconds second".

Kết quả trả về

Hàm sẽ trả về một chuỗi theo dạng "microseconds second" hoặc trả về số thuộc kiểu float tùy thuộc vào tham số truyền vào.

Bài viết này được đăng tại [free tuts .net]

Ví dụ

Ví dụ đơn giản về hàm microtime():

Code

echo microtime() . "<br />";
echo microtime(true);

Kết quả

0.64058100 1493918735
1493918735.6406

Tham khảo: php.net

  • Blog
  • Tin tức

26/07/2021 03:01

Ngày tháng là một phần của cuộc sống hàng ngày, do vậy việc xử lý ngày tháng cực kỳ quan trọng khi bạn xử lý các bài viết và đăng tải lên website. Với PHP, ngôn ngữ lập trình này cung cấp các công cụ mạnh mẽ để tính toán ngày tháng giúp cho việc thao tác ngày tháng trở nên dễ dàng hơn. Trong bài viết này, cùng T3H tìm hiểu về Date, Time trong PHP.

Định dạng ngày tháng trong PHP với hàm date () - Date time trong PHP

Hàm date dùng để chuyển đổi thời gian theo format mà lập trình viên chỉ định mong muốn.

Cú pháp: date(format, timestamp);

Trong đó:

  • format: định  dạng ngày tháng năm, giờ phút giây.
  • timestamp(không bắt buộc) mặc định là hàm time() (chính là thời gian hiện tại).

Chuyển đổi Timestamp với hàm getdate()

Hàm getdate () tùy ý chấp nhận một timestamp và trả về một mảng liên kết chứa thông tin về ngày tháng. Nếu bạn bỏ qua Time Stamp, nó sẽ hoạt động với thời gian thực được trả về theo hàm date().

Bảng sau liệt kê các phần tử có trong mảng được trả về bởi getdate ().

STT

Mô tả

Ví dụ

1

seconds

20

2

minutes

29

3

hours

22

4

mdays

11

5

wday

4

6

mon

7

7

year

1997

8

yday

19

9

weekday

Thursday

10

month

January

11

0

948370048

Bây giờ bạn có toàn quyền kiểm soát ngày và giờ. Bạn có thể định dạng ngày và giờ này ở bất kỳ định dạng nào bạn muốn.

Ví dụ:

<?php

   $date_array = getdate();

   

   foreach ( $date_array as $key => $val ){

      print "$key = $val<br />";

   }

   $formated_date  = "Today's date: ";

   $formated_date .= $date_array['mday'] . "/";

   $formated_date .= $date_array['mon'] . "/";

   $formated_date .= $date_array['year'];

   

   print $formated_date;

?>

Output

seconds = 10

minutes = 29

hours = 9

mday = 5

wday = 1

mon = 12

year = 2016

yday = 339

weekday = Monday

month = December

0 = 1480930150

Today's date: 5/12/2016

>>> Đọc thêm: Hằng số trong PHP - Tìm hiểu nhanh về hằng số trong PHP

Chuyển đổi Timestamp với hàm date() - Date time trong PHP

Hàm date () trả về một chuỗi được định dạng biểu thị một ngày. Bạn có thể thực hiện một lượng lớn quyền kiểm soát đối với định dạng mà date () trả về với một đối số chuỗi mà bạn phải chuyển cho nó.

date(format,timestamp)

Date() tùy chọn chấp nhận một dấu thời gian nếu bị bỏ qua thì ngày và giờ hiện tại sẽ được sử dụng. Bất kỳ dữ liệu nào khác mà bạn đưa vào chuỗi định dạng được chuyển đến date () sẽ được bao gồm trong giá trị trả về.

Bảng sau liệt kê các mã mà một chuỗi định dạng có thể chứa:

STT

Mô tả

Ví dụ

1

a

‘am’ hoặc ‘pm’ viết thường

om

2

A

‘AM’ hoặc ‘PM’ viết hoa

PM

3

d

Ngày trong tháng

20

4

D

ngày trong tuần

Thu

5

F

Tên tháng

Tháng Giêng

6

h

Trả về giờ trong ngày kiểu 12h

12

7

Trả về giờ trong ngày kiểu 24h

22

8

g

22

9

G

12

10

i

22

11

Trả về ngày trong tháng, nhưng nếu ngày<10 sẽ không hiển thị số 0.

23

12

l

Trả về đầy đủ thứ trong tuần (tiếng anh)

Thursday

13

L

1

14

m

Trả về tháng trong năm (bằng số từ 1 đến 12).

1

15

M

Trả về tháng trong năm nhưng bằng tiếng anh viết tắt.

Jan

16

r

Ngày được định dạng

Thu, 21 Dec 2000 16:01:07 +0200

17

n

Tháng trong năm

2

18

s

Trả về số giây trong phút.

20

19

U

Time stamp

948372444

20

y

 Trả về 2 số cuối cùng của năm.

06

21

Y

trả về đầy đủ 4 số của năm.

2006

22

z

Ngày trong năm (từ 0-365)

206

23

Z

trả về số ngày trong năm (Ngày trong năm bắt đầu từ 0 -> 365)

+5

Ví dụ:

<?php

   print date("m/d/y G.i:s<br>", time());

   echo "<br>";

   print "Today is ";

   print date("j of F Y, \a\\t g.i a", time());

?>

Kết quả nhận được:

12/05/16 9:29:47

Today is 5 2016f December 2016 at 9:29 am

>>> Tham khảo: Khóa học lập trình PHP

Kết luận: Bài viết trên đã chỉ ra một số phương pháp để xử lý ngày tháng, Date Time trong PHP, tùy vào từng trường hợp, bạn có thể áp dụng để xử lý ngày tháng một cách khác nhau. Hy vọng bài viết trên hữu ích với bạn. Tìm hiểu thêm về PHP và các ngôn ngữ lập trình khác qua các khóa học lập trình tại Viện công nghệ thông tin T3H bạn nhé!