【问题标题】:Same variable type (String) but not work when use相同的变量类型(字符串)但在使用时不起作用
【发布时间】:2015-03-08 13:39:26
【问题描述】:

10-01-2014 ===> 表示 2014 年 1 月 10 日

我有这样的源代码:

foreach($report_data['summary'] as $key=>$row) {

  $substrdate=substr($row['payment_type'],-16); //i have check the result is 10-01-2014 & 11-01-2014
  $stringvar = '10-01-2014';
  $date = DateTime::createFromFormat('d-m-Y', $stringvar);

    $summary_data_row[] = array('data'=>'<span style="color:'.$color.'">'.$date->format('Y-m-d').'</span>', 'align'=>'right');
    $summary_data_row[] = array('data'=>'<span style="color:'.$color.'">'.$row['comment'].'</span>', 'align'=>'right');
   }//end of foreach

它运行良好 '10-01-2014' 变成字符串类型的 '2014-01-10' 就像我想要的那样......直到我用具有相同值的 $substrdate 替换变量 $stringvar -> '10-01- 2014' ,语法 $date->format('Ym-d') 使我的程序空白页。日志中没有显示错误。

请帮忙

【问题讨论】:

  • 我不明白。您的代码不应该工作:substr 不能有一个负索引作为参数。
  • 你想达到什么目的?
  • @AdrienCadet 是的,它可以。
  • @Gerald Schneider 哦,有趣。那么结果如何呢?
  • @AdrienCadet 你为什么不look it up

标签: php arrays string date


【解决方案1】:

我也遇到了同样的问题。我的解决方案是以下代码。

$stringvar  = '12-01-2014';
$date= date('Y-m-d',strtotime(str_replace("-","/",$stringvar)));

【讨论】:

    【解决方案2】:

    试试这个

    //$stringvar = '10-01-2014';
    //$date = DateTime::createFromFormat('d-m-Y', $stringvar);
    

    用这个代替上面一个

    $stringvar = '10-01-2014';
     $date = date("Y-m-d", strtotime($stringvar)); 
    

    【讨论】:

    • 您好,结果是 1970 年 1 月 1 日,不是我预期的 2014-01-10
    • 嗨,我已经在我的程序中更新了您的解决方案。结果是 1970-01-01 它与我的输入 10-01-2014 的日期不同。为什么它可以更改日期?
    • $stringvar=substr($row['payment_type'],-16); // 结果是 10-01-2014 $summary_data_row[] = array('data'=>''.date("Ymd", strtotime($stringvar) ).'', 'align'=>'right'); //结果是 1970-01-10
    • $stringvar=substr($row['payment_type'],-16); s$summary_data_row[] = array('data'=&gt;'&lt;span style="color:'.$color.'"&gt;'.date("Y-m-d", strtotime('10-01-2014')).'&lt;/span&gt;', 'align'=&gt;'right'); 检查这可能是你的值返回一些什么错误答案它的返回正确吗?
    • 我已经完成了你所说的,它显示正确,因为我想要 2014-01-10 :( 但我很困惑,我有 echo $stringvar=substr($row['payment_type'],- 16); 结果是 10-01-2014 但是为什么当我把 $stringvar 放到你的代码中时它变成了 1970-01-10
    猜你喜欢
    • 1970-01-01
    • 2010-10-30
    • 2022-08-19
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 2016-03-26
    • 2012-03-19
    相关资源
    最近更新 更多