使用Carbon将日期转换为laravel中的毫秒

时间:2018-07-28 13:49:50

标签: php laravel php-carbon

我用碳在laravel约会

$date = Carbon::createFromDate(2018,02,16);

我应该如何将其更改为毫秒?

类似这样的东西:

18:16:30 -> 1532785457060

7 个答案:

答案 0 :(得分:5)

这在laravel 5.5carbon 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