Php mili giây

Tôi quyết định thêm bài đăng rất đơn giản này để minh họa cách chúng ta có thể lấy thời gian hiện tại tính bằng micro giây, mili giây và nano giây sau đó chuyển đổi chúng trở lại thời gian hiện tại


Ví dụ


// MILLISECONDS
$currentMilliSecond = [int] [microtime[true] * 1000];
echo 'CUR MILLISECONDS:'.$currentMilliSecond.PHP_EOL;
echo 'DATE:'.date['d/m/Y H:i:s', intval[$currentMilliSecond/1000]].PHP_EOL;

// MICROSECONDS
$currentMicroSecond = [int] [microtime[true] * 1000000];
echo 'CUR MICROSECONDS:'.$currentMicroSecond.PHP_EOL;
echo 'DATE:'.date['d/m/Y H:i:s', intval[$currentMicroSecond/1000000]].PHP_EOL;

// NANOSECONDS
$currentNanoSecond = [int] [microtime[true] * 1000000000];
echo 'CUR NANOSECONDS:'.$currentNanoSecond.PHP_EOL;
echo 'DATE:'.date['d/m/Y H:i:s', intval[$currentNanoSecond/1000000000]].PHP_EOL;


Kết quả


CUR MILLISECONDS:1523390684112
DATE:10/04/2018 16:04:44

CUR MICROSECONDS:1523390684112993
DATE:10/04/2018 16:04:44

CUR NANOSECONDS:1523390684113001984
DATE:10/04/2018 16:04:44

Không có hàm PHP riêng để ngủ trong một phần nghìn giây và bạn cũng không thể sử dụng các giá trị phân số trong hàm ngủ, vì vậy, thay vào đó, bạn sẽ cần tạo hàm của riêng mình;

Ghi chú. Một micro giây là một phần triệu giây

Để đến phần nghìn giây, bạn nhân với 1000

function m_sleep[$milliseconds] {
  return usleep[$milliseconds * 1000]; // Microseconds->milliseconds
}

Nhân với 1000 khác sẽ đưa bạn đến giây

return usleep[$seconds * 1000 * 1000]; // Microseconds->milliseconds->seconds

Điều này không cần thiết, vì bạn đã có chức năng sleep[] để ngủ trong vài giây — vì vậy, hãy thử sử dụng mili giây ngay bây giờ

Để làm mọi việc dễ dàng hơn, bạn có thể tạo một chức năng mà bạn có thể gọi khi cần

m_sleep[5000]; // 5000 milliseconds = 5 seconds

function m_sleep[$milliseconds] {
  return usleep[$milliseconds * 1000]; // Microseconds->milliseconds
}

Ngủ trong nửa giây

Bạn có thể sử dụng chức năng từ trước để làm cho tập lệnh ngủ trong nửa giây. Biết rằng một nghìn mili giây là một giây, theo logic, nửa giây là 0. 5 lần giá trị này — năm trăm;

echo "Start\n\n";

m_sleep[500]; // 500 milliseconds = 0.5 seconds

echo "0.5 seconds has now passed. Exiting.";
exit[];

Bảng chuyển đổi thời gian

Tôi nghĩ bạn có thể thấy bảng này hữu ích, vì không phải ai cũng nhớ các định nghĩa tiếng Anh tương ứng với số nguyên là gì – và ai trách bạn?

❮ Tham chiếu ngày/giờ PHP

Ví dụ

Trả lại dấu thời gian Unix hiện tại bằng micro giây

echo[microtime[]];
?>

Tự mình thử »

Định nghĩa và cách sử dụng

Hàm microtime[] trả về dấu thời gian Unix hiện tại bằng micro giây

cú pháp


Giá trị tham số

Tham sốMô tảreturn_floatTùy chọn. Khi được đặt thành TRUE, nó chỉ định rằng hàm sẽ trả về một số float, thay vì một chuỗi. Mặc định là SAI

chi tiết kỹ thuật

Giá trị trả về. Trả về chuỗi "microsec sec" theo mặc định, trong đó sec là số giây kể từ Unix Epoch [0. 00. 00 ngày 1 tháng 1 năm 1970 GMT] và microsec là phần micro giây. Nếu tham số return_float được đặt thành TRUE, nó sẽ trả về một số float biểu thị thời gian hiện tại tính bằng giây kể từ kỷ nguyên Unix chính xác đến micro giây gần nhất Phiên bản PHP. 4+Nhật ký thay đổi PHP. PHP5. 0. Đã thêm tham số return_float❮ Tham chiếu ngày/giờ PHP

Nếu bạn muốn một hàm tương đương của

function milliseconds[] {
    $mt = explode[' ', microtime[]];
    return intval[ $mt[1] * 1E3 ] + intval[ round[ $mt[0] * 1E3 ] ];
}
0 tính bằng mili giây, trước tiên bạn phải xem xét rằng vì
function milliseconds[] {
    $mt = explode[' ', microtime[]];
    return intval[ $mt[1] * 1E3 ] + intval[ round[ $mt[0] * 1E3 ] ];
}
0 trả về số giây đã trôi qua kể từ "thời gian kỷ nguyên" [01/01/1970], số mili giây kể từ "thời gian kỷ nguyên" là một

Kích thước của một số nguyên trong PHP có thể là 32 hoặc 64 bit tùy thuộc vào nền tảng

từ http. //php. net/manual/vi/ngôn ngữ. các loại. số nguyên. php

Kích thước của một số nguyên phụ thuộc vào nền tảng, mặc dù giá trị tối đa khoảng hai tỷ là giá trị thông thường [đó là 32 bit được ký]. Nền tảng 64 bit thường có giá trị tối đa khoảng 9E18, ngoại trừ Windows luôn là 32 bit. PHP không hỗ trợ số nguyên không dấu. Kích thước số nguyên có thể được xác định bằng cách sử dụng hằng số PHP_INT_SIZE và giá trị tối đa bằng cách sử dụng hằng số PHP_INT_MAX kể từ PHP 4. 4. 0 và PHP5. 0. 5

Nếu bạn có số nguyên 64 bit thì bạn có thể sử dụng chức năng sau

function milliseconds[] {
    $mt = explode[' ', microtime[]];
    return intval[ $mt[1] * 1E3 ] + intval[ round[ $mt[0] * 1E3 ] ];
}

function milliseconds[] {
    $mt = explode[' ', microtime[]];
    return intval[ $mt[1] * 1E3 ] + intval[ round[ $mt[0] * 1E3 ] ];
}
2 trả về số giây kể từ "thời gian kỷ nguyên" với độ chính xác lên đến micro giây với hai số được phân tách bằng dấu cách, như

CUR MILLISECONDS:1523390684112
DATE:10/04/2018 16:04:44

CUR MICROSECONDS:1523390684112993
DATE:10/04/2018 16:04:44

CUR NANOSECONDS:1523390684113001984
DATE:10/04/2018 16:04:44

0

Số thứ hai là giây [số nguyên] trong khi số thứ nhất là phần thập phân

Hàm trên

function milliseconds[] {
    $mt = explode[' ', microtime[]];
    return intval[ $mt[1] * 1E3 ] + intval[ round[ $mt[0] * 1E3 ] ];
}
3 lấy phần nguyên nhân với
function milliseconds[] {
    $mt = explode[' ', microtime[]];
    return intval[ $mt[1] * 1E3 ] + intval[ round[ $mt[0] * 1E3 ] ];
}
4

CUR MILLISECONDS:1523390684112
DATE:10/04/2018 16:04:44

CUR MICROSECONDS:1523390684112993
DATE:10/04/2018 16:04:44

CUR NANOSECONDS:1523390684113001984
DATE:10/04/2018 16:04:44

3

sau đó thêm phần thập phân nhân với

function milliseconds[] {
    $mt = explode[' ', microtime[]];
    return intval[ $mt[1] * 1E3 ] + intval[ round[ $mt[0] * 1E3 ] ];
}
4 và làm tròn thành 0 số thập phân

CUR MILLISECONDS:1523390684112
DATE:10/04/2018 16:04:44

CUR MICROSECONDS:1523390684112993
DATE:10/04/2018 16:04:44

CUR NANOSECONDS:1523390684113001984
DATE:10/04/2018 16:04:44

5

Lưu ý rằng cả ________ 66 và kết quả của ________ 67 đều được chuyển thành ________ 68 qua

function milliseconds[] {
    $mt = explode[' ', microtime[]];
    return intval[ $mt[1] * 1E3 ] + intval[ round[ $mt[0] * 1E3 ] ];
}
9. Điều này là cần thiết vì chúng là những
CUR MILLISECONDS:1523390684112
DATE:10/04/2018 16:04:44

CUR MICROSECONDS:1523390684112993
DATE:10/04/2018 16:04:44

CUR NANOSECONDS:1523390684113001984
DATE:10/04/2018 16:04:44

00 và thao tác trên chúng mà không ép kiểu sẽ dẫn đến việc hàm trả về một
CUR MILLISECONDS:1523390684112
DATE:10/04/2018 16:04:44

CUR MICROSECONDS:1523390684112993
DATE:10/04/2018 16:04:44

CUR NANOSECONDS:1523390684113001984
DATE:10/04/2018 16:04:44

00 bị mất độ chính xác

Cuối cùng, chức năng đó chính xác hơn một chút so với

function m_sleep[$milliseconds] {
  return usleep[$milliseconds * 1000]; // Microseconds->milliseconds
}
2

với tỉ lệ 1. 10 [xấp xỉ. ] trả về nhiều hơn 1 mili giây so với kết quả chính xác. Điều này là do độ chính xác hạn chế của loại float [_______102 trả về một float]. Dù sao nếu bạn vẫn thích

CUR MILLISECONDS:1523390684112
DATE:10/04/2018 16:04:44

CUR MICROSECONDS:1523390684112993
DATE:10/04/2018 16:04:44

CUR NANOSECONDS:1523390684113001984
DATE:10/04/2018 16:04:44

03 ngắn hơn thì tôi khuyên bạn nên chuyển sang kết quả là
function milliseconds[] {
    $mt = explode[' ', microtime[]];
    return intval[ $mt[1] * 1E3 ] + intval[ round[ $mt[0] * 1E3 ] ];
}
8

Ngay cả khi nó nằm ngoài phạm vi của câu hỏi, điều đáng nói là nếu nền tảng của bạn hỗ trợ số nguyên 64 bit thì bạn cũng có thể nhận được thời gian hiện tại tính bằng micro giây mà không bị tràn

Nếu thực tế ____105 [số nguyên có dấu lớn nhất] chia cho ____106 [xấp xỉ micro giây trong một năm] sẽ cho ____107

Đó là cùng một giá trị bạn nhận được với

function m_sleep[$milliseconds] {
  return usleep[$milliseconds * 1000]; // Microseconds->milliseconds
}
9

Nói cách khác, một số nguyên 64 bit đã ký có chỗ để lưu trữ khoảng thời gian hơn 200.000 năm được đo bằng micro giây

Làm cách nào để in mili giây trong PHP?

Hàm microtime[] của PHP trả về dấu thời gian Unix hiện tại . Theo mặc định, điều này trả về một giá trị chuỗi ở dạng msec sec. Nếu bạn chuyển giá trị boolean true làm tham số cho phương thức này, nó sẽ trả về thời gian hiện tại tính bằng giây kể từ kỷ nguyên Unix chính xác đến micro giây gần nhất.

Dấu thời gian PHP tính bằng giây hay mili giây?

Mô tả ¶ . 00. 00 giờ GMT]. Ghi chú. Dấu thời gian Unix không chứa bất kỳ thông tin nào liên quan đến bất kỳ múi giờ địa phương nào. seconds since the Unix Epoch [January 1 1970 00:00:00 GMT]. Note: Unix timestamps do not contain any information with regards to any local timezone.

Làm cách nào để có được micro giây trong PHP?

Hàm microtime[] là một hàm sẵn có trong PHP, được sử dụng để trả về dấu thời gian Unix hiện tại bằng micro giây. $get_as_float được gửi dưới dạng tham số cho hàm microtime[] và nó trả về chuỗi microsec sec theo mặc định.

Làm cách nào để chuyển đổi mili giây thành ngày trong PHP?

$mil = 1227643821310; echo date["d-m-Y", $seconds];

Chủ Đề