我们正在设计一种新的传感器,可以将一些数据发送到Web应用程序.我们使用类似的传感器,但它们使用数据通道将发送到应用程序的值划分为不同的数据类型.
但是,这个新传感器将以毫秒为单位发送数据或32位时间.它不发送标识符位以查看该值是数据还是时间戳.
因为数据和时间戳都是整数值,我如何检查它是哪一个?
时间戳将是
YYYY/MM/DD HH:MI:SS:vv
我已经找到了preg_match,就像这样:
if (preg_match('/[0-9]{4}-[0-9]{2}-[0-9]{2}/', $value))
Run Code Online (Sandbox Code Playgroud)
但我如何包括毫秒?或者有一种比简单的更好的方法吗?
更新
我希望应用程序收到的日期将在int16中.因此,计算收到的值并处理值9和10(如日期时间)可能更容易.
您可以使用PHP DateTime对象中的createFromFormat()方法.
您将创建一个检查方法错误的函数:
function is_valid_date($date, $format = 'Y/m/d H:i:s.u')
{
$d = DateTime::createFromFormat($format, $date);
$errors = DateTime::getLastErrors();
return (
$errors['warning_count'] == 0 &&
$errors['error_count'] == 0 &&
$d !== false
);
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
编辑:
u在默认格式上添加(微秒).
| 归档时间: |
|
| 查看次数: |
895 次 |
| 最近记录: |