【问题标题】:Turn php object in to date format将php对象转换为日期格式
【发布时间】:2018-05-26 13:09:39
【问题描述】:

我从一个带有月、日和年选择下拉列表的表单中获取用户的出生日期。我为此使用的插件(Pie Register)将此值作为对象(我猜)存储在我的数据库中,如下所示:

a:1:{s:4:"日期";a:3:{s:2:"mm";s:2:"01";s:2:"dd ";s:2:"23";s:2:"yy";s:4:"1965";}}

我尝试了以下方法:

<?php
    $mydata = serialize(get_user_meta($uid, 'pie_date_4', true));
        echo    $mydata[53], $mydata[54],"/",
                $mydata[35], $mydata[36],"/",
                $mydata[71], $mydata[72], $mydata[73], $mydata[74];
?>

这给了我想要的日期:23/01/1965

这显然不是正确的方法......因为我无法真正修复从选择字段到数据库的存储过程,所以我的问题是:我怎样才能通过调用我需要的字符串?

【问题讨论】:

  • 该数据看起来已经被序列化了,因此您需要调用unserialize,然后适当地引用数组值...$array['date']['mm']...

标签: php mysql string date object


【解决方案1】:

你弄错了,你的数据已经序列化了,需要使用:

$value = get_user_meta($uid, 'pie_date_4', true);

// unserialize value, and get array from date index
$unserialize = unserialize($value);
$unserialize = $unserialize['date'];

// create date object
$date = new DateTime($unserialize['yy'] .'-'. $unserialize['mm'] .'-'. $unserialize['dd']);

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

【讨论】:

    猜你喜欢
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2017-03-08
    • 1970-01-01
    • 2020-05-10
    相关资源
    最近更新 更多