【问题标题】:Php unix timestamp with strtotimephp unix时间戳与strtotime
【发布时间】:2019-09-02 17:29:56
【问题描述】:

我开始学习 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');   

, 而不是. 这是我的错误!

【问题讨论】:

  • 你为什么要把DateTimestrtotime()混在一起?你为什么还要使用strtotime()
  • 已修复。 echo strtotime($dataformat,'18:30:00');应该是 echo strtotime($datafmt.'18:30:00');那是我的错误。现在代码返回 1555018200 :) John 我在学习 php,可能我在路上做了很多不正确的事情 :) 我可以告诉我更好的方法来做这个代码做什么,我真的很感激为了学习。

标签: php unix timestamp strtotime


【解决方案1】:

你根本不需要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;

【讨论】:

    猜你喜欢
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多