Carbon object to Unix timestamp based on timezone
Asked Answered
S

2

11

I have a datetime string of format 'Y-m-d H:i:s', and datetime value as '2018-01-30 07:11:21'.

$carbon_obj = Carbon::createFromFormat('Y-m-d H:i:s' , '2018-01-30 07:11:21','America/Chicago');

How do it get the Unix timestamp from this carbon object?

Schargel answered 30/1, 2018 at 9:17 Comment(0)
U
24

just add timestamp at the back of your code.

$carbon_obj = Carbon::createFromFormat('Y-m-d H:i:s' , '2018-01-30 07:11:21','America/Chicago')->timestamp;

or

$carbon_obj = Carbon::createFromFormat('Y-m-d H:i:s' , '2018-01-30 07:11:21','America/Chicago');
$carbon_obj->timestamp;

If you have data missing error. missing it is the data your passed it not a complete date format.

Try this.

$timestp = Carbon::createFromFormat('Y-m-d H:i:s', Carbon::parse($trans['transaction_datetime']) ,Setting::get('timezone'))->timestamp;
Unsling answered 30/1, 2018 at 9:32 Comment(5)
tried that but it says error Exception with message Data missingSchargel
The code is tested in php artisan tinker. You should able to get the result too. I suspect there is another part of your code break it. Try run your php artisan tinkerUnsling
Yes i tried in tinker it works. In Code also in doing the same thing but it says data missing. Below is the code which is being usedSchargel
$timestp = Carbon::createFromFormat('Y-m-d H:i:s' ,$trans['transaction_datetime'] ,Setting::get('timezone'))->timestamp;Schargel
can you show me your $trans['transaction_datetime'] output? I updated my answer, you add Carbon::parse() inside your date data. It should be worked.Unsling
A
0

You can use Carbon::shiftTimezone to change the timezone without changing the dates and time.

$dt = Carbon::parse('2020-03-27');
dump($dt);   //2020-03-27 00:00:00.0 Asia/Kolkata (+05:30)
dump($dt->shiftTimezone('utc'));  //2020-03-27 00:00:00.0 UTC (+00:00)
Awed answered 27/3, 2020 at 12:6 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.