【问题标题】:Warning: date() expects parameter 2 to be long警告:date() 期望参数 2 很长
【发布时间】:2012-12-14 10:09:24
【问题描述】:

得到以下错误:

警告:date() 期望参数 2 很长,字符串在 /home/15063/brooks/www.brooks-shopping.co.uk/public_html/wp-content/themes/sandbox/functions.php 中给出 在第 546 行

哪个指向线:

$day = date("l, F jS", get_post_meta($post->ID, 'date_value', true));

有人可以建议,请对上述行进行哪些更改才能解决此问题?

【问题讨论】:

  • `get_post_meta($post->ID, 'date_value', true)` 返回什么?应该是 time() 值(整数)
  • var_dump(get_post_meta($post->ID, 'date_value', true)); 看看它会返回什么。
  • "long" 是一种数字类型,因为它表示您正在给它一个字符串。
  • @PLB var_dump 的函数调用?是的,没关系,它可以工作,我认为这个函数强制需要一个变量。

标签: php


【解决方案1】:

日期预计参数 2 为长。即它期望返回一个数字。

你返回一个字符串(假设)get_post_meta 您需要先将其转换为时间才能返回(长日期)

不如试试

$day = date("l, F jS", strtotime(get_post_meta($post->ID, 'date_value', true)));

strtotime 函数返回一个int,如图所示here

【讨论】:

    【解决方案2】:

    假设get_post_meta以字符串形式返回时间,试试这个看看是否有效

    $day = date("l, F jS", strtotime(get_post_meta($post->ID, 'date_value', true)));
    

    【讨论】:

      【解决方案3】:

      首先将其转换为 int,如下所示:

      $day = date("l, F jS", (int) get_post_meta($post->ID, 'date_value', true));
      

      【讨论】:

      • 嗯,如果 get_post_meta 以字符串格式返回日期会怎样(例如 `'2012-14-12')。
      • @PLB 在这种情况下这是行不通的,但你知道get_post_meta 是否以字符串格式返回日期(例如''2012-14-12')?
      • 在这种情况下,strtotime 将起作用。无论如何,似乎问题过于本地化并且缺少一些重要信息。
      • @PLB:我同意,但如果get_post_metaseconds since Epoch 这样返回日期,那么strtotime 将不起作用。
      猜你喜欢
      • 2015-11-24
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多