我有'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;