首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在php中将m/d/yy转换为mm/dd/yyyy

在php中将m/d/yy转换为mm/dd/yyyy
EN

Stack Overflow用户
提问于 2015-07-14 19:20:23
回答 4查看 1.3K关注 0票数 1

我用日期从excel中提取列,使用代码我必须验证行中的日期是否在mm/dd/yyyy (07/05/2015)格式的日期中正常工作。它通过日期验证函数,我可以获取该日期,并将其存储在mysql日期格式列中。但是,当我读取具有日期格式为m/d/yy (7/5/15)的excel文件时,出现了问题,我不知道它在什么地方出错,但当我查看它时,数据库中的日期被转换成了奇怪的日期,并且它从file验证函数中跳过了大部分日期。我想要做的是将从excel获取的字符串从m/d/yy转换为mm/dd/yy,然后再得到日期验证函数。有人能告诉我怎么做到这一点吗?

这是我的功能来验证它的日期。

代码语言:javascript
复制
public function is_date( $str ) /// function to check if its date
    { 
    $stamp = strtotime( $str ); 
    if (!is_numeric($stamp)) 
        return FALSE; 
    $month = date( 'm', $stamp ); 
    $day   = date( 'd', $stamp ); 
    $year  = date( 'Y', $stamp ); 
    if (checkdate($month, $day, $year)) 
        return TRUE; 
    return FALSE; 
    }

这是它获取日期并发送到数据库的部分。

代码语言:javascript
复制
 foreach(array_slice($sheetData, $dateRow-1) as $item) 
            { 
                $value = trim($item["{$revCol}"], "$");
                $value = str_replace(",", "", $value);
                $value = str_replace("?", "", $value);
                //check if its date or garbage data
                if ($this->is_date( $item["{$dateCol}"]) /* && $this->isCurrency($temp) */)
                {   
                    $key = $item["{$dateCol}"];
                    $key = date('Y-m-d', strtotime($key));
                    $sold = $item["{$soldCol}"];
                    $params = array('key' => $key);
                    $oldVal->execute($params);
                    $results = $oldVal->fetch(); // fetch old value before replacing with new   
                    $old_rev = $results['rev'];
                    $old_sold = $results['sold'];
                    $diff_rev = $value - $old_rev;
                    $diff_rev = number_format($diff_rev, 2, '.', '');
                    $diff_sold = $sold - $old_sold;
                    //$insertDiff->execute(array($key, $diff_rev, $diff_sold));     
                    $newVal->execute(array($key, $value, $diff_rev, $sold, $diff_sold));
                }       
            }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-07-14 19:28:48

试试这段代码来转换它..。

代码语言:javascript
复制
$date = "7/5/15";
$your_date = date("m/d/Y", strtotime($date));
echo $your_date;

它将呼应2015年05年7月7日

这里有一个在线的例子

票数 1
EN

Stack Overflow用户

发布于 2015-07-14 19:25:26

这就是你想要的吗?strtotime取消这种格式。

代码语言:javascript
复制
$str = '7/5/15';
echo date("m/d/Y", strtotime($str)); // 07/05/2015
票数 0
EN

Stack Overflow用户

发布于 2015-07-14 19:27:55

可以将Excel中的列格式化为带前导零的日期。这似乎是最快的解决办法。

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

https://stackoverflow.com/questions/31415486

复制
相关文章

相似问题

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