【问题标题】:PHP - convert midnight date into timestamp [duplicate]PHP - 将午夜日期转换为时间戳[重复]
【发布时间】:2016-05-30 07:19:06
【问题描述】:

我无法将午夜日期转换为时间戳。我从客户端通过 AJAX POST 方法时间戳(包括时区偏移)获取,所以我将其转换为像这样的午夜日期:

$timestamp = 1463990400; // for example
echo date('d-m-Y H:i:s', strtotime('today', $timestamp));

这一行输出是:23-05-2016 00:00:00

我很想将这个午夜日期时间转换为时间戳来创建 SQL SELECT。

有什么解决办法吗?

【问题讨论】:

  • 我尝试使用 format() 方法和 expolde() 函数来创建一个数组,但到目前为止这两种方法都不适合我。也许我做错了什么..
  • 好东西也知道。你能用你所做的来丰富你的原始帖子吗?
  • 当然,抱歉。
  • 我不明白目标...是用PHP将“23-05-2016 00:00:00”转换回1463990400吗?
  • 它不像convert back,因为$timestamp可以包含时间偏移或sime时间,它只是常规的日期时间,所以它可以像“23-05-2016 07:15:20”,所以首先我需要得到这个日期时间的午夜,然后创建时间戳..

标签: php date datetime timestamp


【解决方案1】:

终于找到了如何用 mktime() 函数解决我的问题的方法:

$offset = date('d-m-Y H:i:s', strtotime('today', $datum_to));
$parts = preg_split('/\s+/', $offset);
$date_convert = explode("-", $parts[0]);
$time_convert = explode(":", $parts[1]);

$this_tz_str = date_default_timezone_get();
$this_tz = new DateTimeZone($this_tz_str);
$now = new DateTime("now", $this_tz);
$offset = $this_tz->getOffset($now);

$second_starttimeUTC = mktime(0, 0, 0, $date_convert[1], $date_convert[0], $date_convert[2])+$offset;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 2015-01-01
    • 2011-12-07
    • 1970-01-01
    • 2014-06-26
    • 2013-12-17
    • 2013-09-12
    相关资源
    最近更新 更多