我在这里有以下代码:
$start_date = date_parse('10-17-2017');
$end_date = date_parse('10-30-2017');
$start_time = time($start_date);
$now = time();
$end_time = time($end_date);
var_dump($start_time,$end_time, $now);
输出是这样的:
int(1508383949) int(1508383949) int(1508383949)
他们为什么给出相同的价值?
我也尝试过使用strtotime
,
$start_time = strtotime($start_date);
$now = time();
$end_time = strtotime($end_date);
结果如下:
bool(false) bool(false) int(1508384298)
答案 0 :(得分:1)
时间函数不带任何参数。所以以下不会奏效。
time($start_date);
使用strtotime,您需要以m/d/y
或d-m-y
格式提供日期。请检查连字符和斜线。
注意:m / d / y或d-m-y格式的日期通过查看来消除歧义 在各个组件之间的分隔符处:如果分隔符是a 斜线(/),然后是美国m / d / y;而如果 separator是短划线( - )或点(。),然后是欧洲d-m-y格式 假设。但是,如果年份是以两位数格式给出的 分隔符是破折号( - ,日期字符串被解析为y-m-d。
答案 1 :(得分:0)
早在你身边,
您获得相同的值,因为
time
不接受任何参数date_parse
/ strtotime
strtotime
允许 - 与许多其他人一样 - 这两种日期格式为m/d/y
和d-m-y
。因此,您需要将值从10-17-2017
更改为10/17/2017
或更改为2017-10-17
。
我的解决方案:
<?php
$start_time = strtotime('10/17/2017');
$end_time = strtotime('10/30/2017');
$now = time();
var_dump($start_time, $end_time, $now);
输出:
int(1508212800) int(1509336000) int(1508385505)
您可以在PHP.net上找到更多信息,只需查找strtotime和time函数即可。 :3
此致
萨姆