我有'n/j Y'格式的日期,並希望獲得時間戳。以下代碼返回1513109760,這是不正確的。這對2017年的12/12從'n/j Y'日期獲取Unix時間戳PHP
$date = '12/12 2016';
echo $date. ', ' .strtotime($date);
我有'n/j Y'格式的日期,並希望獲得時間戳。以下代碼返回1513109760,這是不正確的。這對2017年的12/12從'n/j Y'日期獲取Unix時間戳PHP
$date = '12/12 2016';
echo $date. ', ' .strtotime($date);
時間戳試試這個
$date = '12/12 2016';
$datetime = \DateTime::createFromFormat('n/j Y', $date);
$datetime->getTimestamp();
您必須提交日期爲strtotime
它可以理解的格式。所以要麼像這樣修改格式。
如果日月份和年份之間用/
分開,那麼假定美國的日期格式,即MM/DD/YYYYY。
如果它們由-
那麼歐洲格式分隔的假定,即DD-MM-YYYYY
$date = '12/12 2016';
$fixed = str_replace(array(' ', '/'), '-', $date);
echo strtotime($fixed);
echo PHP_EOL;
echo date('d/m/Y',strtotime($fixed));
另外也可以使用DateTime對象
$date = '12/12 2016';
$dt = \DateTime::createFromFormat('n/j Y', $date);
echo $dt->getTimestamp();
echo PHP_EOL;
echo $dt->format('d/m/Y');
另一個可能的選擇是使用常規表達式來提取日期組件,然後使用mktime()創建時間戳。
$date = '12/12 2016';
preg_match_all('/([0-9]+)/', $date, $dateParts);
$timestamp = mktime(0,0,0, $dateParts[0][0], $dateParts[0][1], $dateParts[0][2]);
echo $timestamp;
結果:
1481500800
這很適合我。
$date = '12-12-2016';
echo date('m-d-Y', strtotime($date));
echo "<br><br>";
$date1 = strtotime($date);
$date1 = date('m-d-Y', $date1);
echo $date;