当前位置: 首页 > 面试题库 >

PHP:strtotime在将来的日期返回false?

印瑾瑜
2023-03-14
问题内容

如果您不相信我,这是我在Eclipse中使用的一些调试表达式:

"strtotime("2110-07-16 10:07:47")" = (boolean) false    
"strtotime("2110-07-16")" = (boolean) false

我在函数中使用它,它在开始和结束日期之间返回一个随机日期:

public static function randomDate($start_date, $end_date, $format = DateTimeHelper::DATE_FORMAT_SQL_DATE)
    {
        if($start_date instanceof DateTime)     $start_date = $start_date->format(DateTimeHelper::DATE_FORMAT_YMDHMS);
        if($end_date instanceof DateTime)       $end_date   = $end_date->format(DateTimeHelper::DATE_FORMAT_YMDHMS);

        // Convert timetamps to millis
        $min = strtotime($start_date);
        $max = strtotime($end_date);

        // Generate random number using above bounds
        $val = rand($min, $max);

        // Convert back to desired date format
        return date($format, $val);
    }

任何想法如何使它返回正确的Unix时间以供将来使用?

谢谢!


问题答案:

如果要使用超出32位整数日期范围的日期,请使用PHP的dateTime对象

try {
    $date = new DateTime('2110-07-16 10:07:47');
} catch (Exception $e) {
    echo $e->getMessage();
    exit(1);
}

echo $date->format('Y-m-d');


 类似资料:
  • 问题内容: 这是我的SQL Server表 这似乎很容易做到,但我不知道为什么会被卡住。我只想为每个id选择max(date)和该max(date)处的值。我想忽略相对于每个ID而言不是max(date)的所有其他日期。 这是我希望表格看起来像的样子: 我尝试通过使用max(date)进行分组,但没有进行任何分组。我不确定自己在做什么错。在此先感谢您的帮助! 问题答案: 您可以使用以下内容: 观看

  • 问题内容: 在我的程序中,我试图将日期转换为指定格式的字符串,然后再转换为日期。我需要日期为dd-MMM- yy格式。因此,我正在使用SimpleDateFormat将日期转换为dd-MMM-yy格式, 结果是我预期的,即12年5月23日,但是当我使用parse()将字符串转换回日期时,它将更改为IST 2012年5月23日星期三13:16:14。 有什么方法可以将字符串转换回日期而不更改格式?我

  • 在我的程序中,我试图将日期转换为字符串,转换为指定格式,然后转换回日期。我需要日期是dd-MMM-yy格式。因此,我使用SimpleDateFormat将日期转换为dd-MMM-yy格式, 结果与我预期的一样,即23-may-12,但当我使用parse()将字符串转换回日期时,它更改为Wed may23 13:16:14 IST 2012。 有什么方法可以在不改变格式的情况下将字符串转换回日期吗?

  • 我有以下应该返回时间戳的函数。当使用以下斜杠以字符串格式输入日期时,此代码有效:“2019/3/4”,但在使用 怎么回事?

  • 问题内容: 这是代码摘录: 是的字符串。我输入“ let date”以查看返回的内容,并且为零。我在这里查找格式代码:http : //waracle.net/iphone- nsdateformatter-date-formatting-table/ 代码应该实际工作。我究竟做错了什么? 编辑 :添加了整个功能 EDIT2 :我刚刚注意到它在iPhone 7 iOS 10.1模拟器上可以正常工作

  • 我正面临一个前所未有的奇怪问题。我有一个以毫秒为单位的日期,希望将其显示为可读的日期。这是我的代码: 如你所见,我只想创建一个显示时间跨度的字符串。当我调试代码时,日期对象包含正确的值,而