[英]time() gives the same value for two different dates
我在這里有以下代碼:
$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)
時間函數不接受任何參數。 因此,以下將無法正常工作。
time($start_date);
使用strtotime時,您需要將日期設置為m/d/y
或dmy
格式。 請檢查連字符和斜杠。
來自strtotime的官方文檔
注意:通過查看各個組成部分之間的分隔符,可以消除m / d / y或dmy格式的日期的歧義:如果該分隔符是斜杠(/),則假定使用美國m / d / y; 相反,如果分隔符是破折號(-)或點(。),則采用歐洲dmy格式。 但是,如果以兩位數字格式給出年份,並且分隔符為破折號(-,則日期字符串將解析為ymd。
最令您難忘的是,
您獲得相同的值,因為
time
不接受任何參數 date_parse
/ strtotime
strtotime
允許-除其他以外-日期的兩種格式: m/d/y
和dmy
。 因此,您需要將值從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
此致
山姆
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.