将字符串转换为日期php
问题描述:
你好,我想建立将字符串转换为日期php
我从窗体xxx获得$ date和$ date1。我想让假期计划。
现在我想处理$日期与值xx-xx-xxxx(日/月/年)的变量字符串和 $ date1现在我想将它们转换为日期。
我已经知道如何使用DATEDIFF()
我转换$日期,这样我就可以使用DATEADD数天()函数
下面的代码
$t1 = substr($date,0,2);
$b1 = substr($date,3,2);
$y1 = substr($date,6,4);
$t2 = substr($date11,0,2);
$b2 = substr($date1,3,2);
$y2 = substr($date1,6,4);
$tawal ="$y1-$b1-$t1";
$takhir = "$y2-$b2-$t2";
$query = "SELECT datediff('$takhir', '$tawal')as selisih";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);
$times = $data['selisih'];
$times = + 1;
的图片浏览
答
你不需要substr或mysql。首先得到没有substr的日期:
$tawal = date('Y-m-d', strtotime($date));
$takhir = date('Y-m-d', strtotime($date1));
现在你有Y-m-d格式的字符串。要找到差异,尽管您不必将其转换为Y-m-d,因为我们不需要mysql。您可以使用this method以秒为单位查找差异。
$diff = abs(strtotime($date2) - strtotime($date));
$years = floor($diff/(365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
答
这里是我的日期助手:
function date_as($date, $format = 'Verbal, hour:minute')
{
parse_date($date);
$format = str_replace(array('verbal', 'Verbal'), array($date['verbal'], $date['Verbal']), $format);
return str_replace(array_keys($date), array_values($date), $format);
}
function parse_date(&$date)
{
$unix = is_numeric($date) ? $date : strtotime($date);
$date = array(
'month' => strtolower(date('F', $unix)),
'dayweek' => strtolower(date('l', $unix)),
'date' => date('d', $unix),
'year' => date('Y', $unix),
'hour' => date('H', $unix),
'minute' => date('i', $unix),
'second' => date('s', $unix),
'today' => (date('Y-m-d',strtotime('now')) == date('Y-m-d', $unix)),
'yesterday' => (date('Y-m-d', strtotime('now - 1 day')) == date('Y-m-d', $unix)),
'tomorrow' => (date('Y-m-d', strtotime('now + 1 day')) == date('Y-m-d', $unix)),
'mint' => date('m', $unix),
);
if ($date['yesterday'])
{
$date['verbal'] = 'yesterday';
}
elseif ($date['today'])
{
$date['verbal'] = 'today';
}
elseif ($date['tomorrow'])
{
$date['verbal'] = 'tomorrow';
}
else
{
$date['verbal'] = 'date month';
}
foreach (array('dayweek', 'month', 'verbal', 'date') as $p)
{
$date[ucfirst($p)] = mb_convert_case($date[$p], \MB_CASE_TITLE, 'UTF-8');
}
}
格式,如你所愿......