簡體   English   中英

time()在兩個不同的日期給出相同的值

[英]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/ydmy格式。 請檢查連字符和斜杠。

來自strtotime的官方文檔

注意:通過查看各個組成部分之間的分隔符,可以消除m / d / y或dmy格式的日期的歧義:如果該分隔符是斜杠(/),則假定使用美國m / d / y; 相反,如果分隔符是破折號(-)或點(。),則采用歐洲dmy格式。 但是,如果以兩位數字格式給出年份,並且分隔符為破折號(-,則日期字符串將解析為ymd。

最令您難忘的是,

您獲得相同的值,因為

  1. time不接受任何參數
  2. 沒有正確使用date_parse / strtotime

strtotime允許-除其他以外-日期的兩種格式: m/d/ydmy 因此,您需要將值從10-17-2017更改為10/17/20172017-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上找到更多信息,只需查找strtotimetime函數。 :3

此致
山姆

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM