我真的尝试了一切,我从日期选择器中得到了我的日期,如下所示:2016年10月5日
然后我将/替换为-。使用strtotime,但我总是得到01-1-1970。
这是我的代码:
if (isset($_POST['CampaignName']) && isset($_POST['CampaginBudget']) && isset($_POST['start_date']) && isset($_POST['end_date']) && $email )
{
// receiving the post params
$CampaignName= $_POST['CampaignName'];
$CampaignBudget = $_POST['CampaginBudget'];
$start_date= str_replace('/', '-', $_POST['start_date']);
$end_date = explode('/', $end_date);
$start_date = date('Y-m-d', strtotime($start_date));
$end_date = date('Y-m-d', strtotime(implode('-', strtotime($end_date))));
//$end_date = date('Y-m-d', strtotime($end_date2));
echo $start_date; echo $end_date;
编辑:开始日期工作正常,但结束日期有问题。即使它们是完全相同的
html代码:
Campaign Duration :<input type="text" name="start_date" class="form-control" id="datetimepicker" placeholder="mm/dd/yyyy"/ required> <span> TO </span> <input type="text" name="end_date" class="form-control" id="datetimepicker2" placeholder="mm/dd/yyyy"/ required>
你试过这个吗?
$originalDate = $_POST['start_date'];
echo $newDate = date("Y-m-d", strtotime($originalDate));
您在结束日期上没有执行双倍时间的strtotime,这就是为什么会出现问题:
对于结束日期,只需执行:
$end_date = explode('/', $end_date);
$end_date = date('Y-m-d', strtotime(implode('-', $end_date))); // remove strtotime from implode function
完整代码:
if (isset($_POST['CampaignName']) && isset($_POST['CampaginBudget']) && isset($_POST['start_date']) && isset($_POST['end_date']) && $email )
{
// receiving the post params
$CampaignName= $_POST['CampaignName'];
$CampaignBudget = $_POST['CampaginBudget'];
$start_date= str_replace('/', '-', $_POST['start_date']);
$start_date = date('Y-m-d', strtotime($start_date));
$end_date = $_POST['end_date']; // add this line
$end_date = explode('/', $end_date);
$end_date = date('Y-m-d', strtotime(implode('-', $end_date))); // remove strtotime from implode function
echo $start_date; echo $end_date;