首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP连接Zero to date POST值

PHP连接Zero to date POST值
EN

Stack Overflow用户
提问于 2012-03-06 03:21:44
回答 5查看 617关注 0票数 2

我需要向发布的日期值添加一个零,因为MySQL日期值将用作显示添加的照片的目录路径。当前目录保存为2012-2-5,MySQL条目为2012-02-05。

我尝试了以下方法,但似乎不起作用:

代码语言:javascript
复制
$dates = array($_POST['photos_year'], $_POST['photos_month'], $_POST['photos_day']);
    foreach($dates as $date) {
    if (strlen($date) == 1) {
        $date = '0' . $date;
    }
    }
$photos->date = $dates[0] . "-" . $dates[1] . "-" . $dates[2];

我正在使用一个for循环来创建日期表单,这对我来说可能更容易编辑,但是我还没有成功:

代码语言:javascript
复制
<select name="photos_month"  id="photos_month" tabindex="3">
    <option value ="">- Month -</option>
    <?php 
    for($date=01;$date<=12;$date++) {
        if (isset($photos) && $date==$month) {
            echo "<option value='".$date."' selected='selected'>".$date."</option>";
        } else {
            echo "<option value='".$date."'>".$date."</option>";
        }
    }
    ?>
</select>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-06 03:27:50

您需要将foreach更新为

代码语言:javascript
复制
foreach ($dates as &$date)

目前,$date是一个新符号,不会覆盖该值。这应该可以解决这个问题,但是在选项中有正确的字符串可能也很好。您可以使用str_pad来做到这一点。

票数 4
EN

Stack Overflow用户

发布于 2012-03-06 03:28:16

在执行foreach时,元素变量$date是一个新变量,是数组中的值的副本。您应该使用密钥并更新原始数组。

代码语言:javascript
复制
foreach($dates as $key => $date) {
if (strlen($date) == 1) {
    $dates[$key] = '0' . $date;
}
}

此外,您在year上运行该代码,您不希望在年份中添加零,只希望将月份和日期添加到年份中。

票数 2
EN

Stack Overflow用户

发布于 2012-03-06 03:27:50

查看字符串板函数http://php.net/manual/en/function.str-pad.php

以及数组映射函数http://php.net/manual/en/function.array-map.php

将这两者结合使用将允许您遍历日期的每个部分(Array_map),并使用0填充数值(使用str_pad)

代码应该如下所示

代码语言:javascript
复制
$dates = array_map("padString",$dates);

function padString($string) {
    return str_pad($string,2,"0",STR_PAD_LEFT);
}

print_r($dates);

//提供数组( => 2012 1 => 02 2 => 05 )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9572609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档