我用碳在laravel约会
$date = Carbon::createFromDate(2018,02,16);
我应该如何将其更改为毫秒?
类似这样的东西:
18:16:30 -> 1532785457060
答案 0 :(得分:5)
这在laravel 5.5
和carbon 1
中有效。
$timestamp = (int) round(now()->format('Uu') / pow(10, 6 - 3));
这实际上是getPreciseTimestamp(3)
中的carbon2
的作用。
答案 1 :(得分:3)
高村的答案非常接近正确,但它包含一个错误:您必须将数字用零填充,否则如果当前的毫秒数少于100,则会得到错误的答案。
此示例将为您提供当前时间(以毫秒为单位):
$carbon = now();
$nowInMilliseconds = (int) ($now->timestamp . str_pad($now->milli, 3, '0', STR_PAD_LEFT));
要解释为什么您必须多保留几毫秒的时间:
$seconds = 5;
$milliseconds = 75; // milliseconds are always between 0 and 999
// wrong answer: 575
$totalInMs = $seconds . $milliseconds;
// correct answer: 5075
$totalInMs = $now->timestamp . str_pad($now->milli, 3, '0', STR_PAD_LEFT);
答案 2 :(得分:1)
只需使用Carbon对象的timestamp属性即可获取以毫秒为单位的时间。
$date->timestamp
示例:
Carbon\Carbon::now()->timestamp
答案 3 :(得分:1)
>>> $now = now();
=> Illuminate\Support\Carbon @1571283623 {#2987
date: 2019-10-17 03:40:23.530274 UTC (+00:00),
}
>>> $now->timestamp
=> 1571283623
>>> $x = $now->timestamp . $now->milli
=> "1571283623530"
>>> \Carbon\Carbon::createFromTimestampMs($x)->toDateTimeString()
=> "2019-10-17 03:40:23"
>>> >>> \Carbon\Carbon::createFromTimestampMs($x)->format('Y-m-d H:i:s.u')
=> "2019-10-17 03:40:23.530000"
答案 4 :(得分:1)
要以毫秒为单位获取时间戳,您可以使用
$date = Carbon::now();
$timeInMilliseconds = $date->valueOf()
作为替代方案
$timeInMilliseconds = $date->getPreciseTimestamp(3)
答案 5 :(得分:1)
您可以转换任何日期。下面是一个例子。
$dateWithMs = '2021-07-30 12:02:07.376000';
$timestamp = (int) round(Carbon::parse($date)->format('Uu') / pow(10, 6 - 3));
你应该使用 Laravel >= 5.5 和 Carbon 1。
它对我有用。
答案 6 :(得分:0)
您可以执行以下操作
$date = Carbon::createFromDate(2018,02,16);
// 2018-02-16 15:43:38.617547 Europe/Berlin (+01:00)
$dateInMills = $date->timestamp;
// 1518792294