PHP Unix Timestamp с strtotime - PullRequest
       21

PHP Unix Timestamp с strtotime

0 голосов
/ 12 апреля 2019

Я начинаю изучать PHP и очень ясно, что я делаю здесь какую-то ошибку, я пытаюсь получить Unix метку времени определенного часа и минут дня:

 <?php
 date_default_timezone_set('America/Argentina/Buenos_Aires');
 $data = new DateTime();
 $datafmt = $data->format('Y-m-d');
 echo strtotime($datafmt,'18:30:00');
 ?>

Код возврата 1554951600 и равен:

GMT: Thursday, April 11, 2019 3:00:00 AM
Your time zone: Thursday, April 11, 2019 12:00:00 AM GMT-03:00

Это неправильно, отметка времени должна быть:
1555018200 невероятно равно:

GMT: Thursday, April 11, 2019 9:30:00 PM
Your time zone: Thursday, April 11, 2019 6:30:00 PM GMT-03:00

Что я делаю не так?


Исправлено!

echo strtotime($datafmt. '18:30:00');   

, вместо . это моя ошибка!

Ответы [ 2 ]

1 голос
/ 15 апреля 2019

Вам не нужно strtotime() вообще. DateTime класс является заменой и является более мощным. Просто передайте время конструктору или установите его методом setTime()

<?php
date_default_timezone_set('America/Argentina/Buenos_Aires');
$data = new DateTime('18:30:00');
// Alternative ways to set the time of the DateTime object
// $data->setTime('18', '30', '00');
// $data->setTime(...explode(':', '18:30:00'));
$datafmt = $data->format('U'); // U means UNIX timestamp
echo $datafmt;
0 голосов
/ 12 апреля 2019

Вы пытаетесь так:

//your code
echo strtotime($datafmt. ' 18:30:00'); //change comma (,) with dot (.)

ИЛИ

date_default_timezone_set('America/Argentina/Buenos_Aires');
$data = new DateTime("18:30:00");
$datafmt = $data->format('U');
echo $datafmt; 
...