我正在使用php的DateTime函数。我从格式为d-m-Y的日历中获取日期,并通过ajax将其传递给我的函数。我正在把这个日期直到这一步。 当我尝试使用以下方式将日期存储为unix格式时:
$ai_ff_date=DateTime::CreateFromFormat('d-m-Y', $data['date']);
$final_date=$ai_ff_date->format('U');
存储的日期错误。假设我通过ajax传递的日期是26-12-2016,然后存储在数据库27-12-2016中。为什么计算一天再输入。
答案 0 :(得分:0)
使用此代码:
$date = date('Y-m-d H:i:s', strtotime('-1 day', $stop_date));
$ai_ff_date=DateTime::CreateFromFormat('d-m-Y',$date);
$final_date=$ai_ff_date->format('U');
请检查变量(代码未测试)
答案 1 :(得分:0)
您可能希望将日期格式转换为"Y-m-d"
首先,然后调用DateTime()
构造函数。但是,由于您要做的只是获取TimeStamp,您也可以直接执行此操作而不使用DateTime。下面的代码段显示了这里的含义:
<?php
$data = ['date'=>"13-12-2016"]; //<== JUST AN EXAMPLE FOR TESTING!!!
// SIMPLY CONVERT THE DATE TO Y-m-d FIRST.
$dateYMD = date("Y-m-d", strtotime($data['date']));
// THEN USE DateTime CONSTRUCTOR TO CREATE A NEW DateTime INSTANCE
// AND THEN RUN THE FORMAT YOU WISH::
$final_date = (new DateTime($dateYMD))->format('U');
var_dump($final_date); //<== YIELDS: string '1481583600' (length=10)
var_dump(date("Y-m-d", $final_date)); //<== YIELDS: string '2016-12-13' (length=10)