在php中如何进行长短日期格式的转换?

数据库中有”2008年09月15日“和”2008年9月15日“这样的字段内容,如何转换为2008-9-15的形式,数据库是mysql,谢谢
有个朋友提供了一段代码,但执行不成功,那位大侠能帮看看
if($time){
$time = str_replace(" ","",$time);
$pos = strrpos($time, "年");
$begin = $pos-4;
$end = strrpos($time, "日");
if($begin && $end)
$time = substr($time, $begin, $end-$begin);
$time = str_replace(array("年","月"),"-",$time);
$time = strtotime($time);
}else{
$time = strtotime($time);
}
return $time;

第1个回答  2008-10-23
我都测试过了 这个肯定可以 不行的话你请我吃饭

<?
$date = '2008年10月19日';
$date2 = '2008-10-21';
/*
$date 时间变量
$type 格式转换参数
return 需要的时间格式
*/
function ch_date($date,$type='ls')
{
if($type == 'ls')//长时间格式变短时间格式
{
if(eregi('([0-9]{4,4})年([0-9]{1,2})月([0-9]{1,2})',$date,$tmp))
{
$new_date = "$tmp[1]-$tmp[2]-$tmp[3]";
}
else
{
$new_date = $date;
}
}
elseif($type == 'sl')//短时间格式变长时间格式
{
if(eregi('([0-9]{4,4})-([0-9]{1,2})-([0-9]{1,2})',$date,$tmp))
{
$new_date = "$tmp[1]年$tmp[2]月$tmp[3]日";
}
else
{
$new_date = $date;
}
}
return $new_date;
}

echo ch_date($date);
echo ch_date($date2,'sl');
?>
第2个回答  2008-10-21
<?
$date="2008年09月15日";
$date=str_replace("年","-",$date);
$date=str_replace("月","-",$date);
$date=str_replace("日","",$date);
echo date("Y-m-d",strtotime($date));

echo "<br>-----------<br>";
$date="2008年9月15日";
$date=str_replace("年","-",$date);
$date=str_replace("月","-",$date);
$date=str_replace("日","",$date);
echo date("Y-m-d",strtotime($date));

?>本回答被提问者采纳
第3个回答  2008-10-21
<?php
$time = '2008年09月15日';
$time = date("Y-m-d", strtotime(str_replace(array('年','月','日'),array('-','-',''),$time)));
echo $time;

php时间格式怎么转换?
\/\/将当前时间转换成yyyy-mm-dd格式串,再转换成日期格式,绕了一圈哈 echo strtotime(date('Y-m-d',time()).' 00:00:00');\/\/将GNU 日期输入格式的字符转换成时间 echo strtotime('now');\/\/标准的字符串转换成时间 t = '2012-9-10 15:18:06';time = strtotime($t);\/\/将时间转换成...

php如何将分别输入的年月日小时转化为%y-%m-%d %h:%i:%s 这种格式
用date方法即可,date('Y-m-d H:i:s', time());如果需要将输入的时间按照这个显示的话,直接用字符串拼接就好了,或者将日期转换成时间戳,然后再用date格式化即可。

怎么将日期格式转换
如果是php的话,可以通过strtotime方法转换成时间戳

php 时间加减
例如,`$Date_1="2009-07-08";`和`$Date_2="2009-06-08";`,使用`strtotime`函数将日期转换为时间戳,计算时间差值为`$Days=round(($d1-$d2)\/3600\/24);`,最终输出两日期相差有`$Days`天。通过这些函数和方法,PHP开发者能够灵活地进行日期时间的处理,满足各种应用需求。无论是在时间戳...

学习PHP中的国际化日期格式化操作
日期和时间类型通过构造函数参数指定,获取对应常量值。区域语言信息在国际化相关组件类中通常包含。格式规则通过构造函数参数或对象动态设置。使用`setPattern()`设置格式规则后,再次`format()`操作即按新规则进行格式化。`getTimezoneId()`方法获取时区内容,`setTimezone()`方法推荐用于设置时区信息。`...

php 日期循环
\/\/简单写下,用日期差,具体的日期转换自己查,转换成时间戳计算$time=mktime(0,0,0,date('Y'),date('m'),date('d'));\/\/当前时间转换为时间戳,或者可以自己定义一个日期\/\/一天是86400,那么7天是多少,=$cha\/\/然后$time-$cha, 转换成想要的日期格式,我不记得了,用T(time)表示for($...

PHP 日期加减计算方法示例
首先,PHP提供了标准的日期格式函数 date("Y-m-d H:i:s");,用于输出日期和时间。接着,简单的日期加减计算可以通过直接在日期字符串上进行加减操作实现。例如,将当前日期"2017-11-06 18:58:04"加上一天,结果为"2017-11-07 18:58:04"。对于更进阶的日期加减操作,可以利用PHP的内建函数,...

php时间格式转换
<一>、PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式(2015-12-5)<二>、php5.1以上时间戳会与实际时间相差8小时,解决办法如下 1、最简单的方法就是不要用php5.1以上的版本--显然这是不可取的方法!!!2、修改php.ini。打开php.ini查找date.timezone 去掉前面的分号= ...

php格式怎么转换?
php时间格式怎么转换?php日期格式转换总结:?php \/\/将当前时间转换成yyyy-mm-dd格式串,再转换成日期格式,绕了一圈哈 echostrtotime(date('Y-m-d',time()).'00:00:00');\/\/将GNU日期输入格式的字符转换成时间 echostrtotime('now');\/\/标准的字符串转换成时间 t='2012-9-1015:18:06';time...

php日期怎么转时间戳毫秒
php日期转时间戳毫秒的方法:首先创建一个PHP示例文件;然后通过“function get_data_format($time){.}”方法将时间日期转为时间戳格式,并精确到毫秒即可。本文操作环境:windows7系统、PHP7.1版,DELL G3电脑 php日期怎么转时间戳毫秒?PHP毫秒级时间戳和日期格式转换 方法实现 在并发量搞得情况下,...

相似回答