在PHP中将mm/yyyy转换为mmyy

在PHP中将mm/yyyy转换为mmyy,php,date,Php,Date,如果这是重复的话,我很抱歉,但我确实在寻找答案,但没有结果 我有个约会。它是一个对象,我已将其转换为字符串: $exp = (string)$date; 此变量显示为:10/2013 但当我尝试将mm/yyyy格式转换为mmyy时,使用以下代码: $ex = date($exp); $e = date('m Y',$ex); …我不仅会收到以下错误通知: Notice: A non well formed numeric value encountered in ... …但我的约会日期也

如果这是重复的话,我很抱歉,但我确实在寻找答案,但没有结果

我有个约会。它是一个对象,我已将其转换为字符串:

$exp = (string)$date;
此变量显示为:
10/2013

但当我尝试将mm/yyyy格式转换为mmyy时,使用以下代码:

$ex = date($exp);
$e = date('m Y',$ex);
…我不仅会收到以下错误通知:

Notice: A non well formed numeric value encountered in ...
…但我的约会日期也改为:
1269
(1969年12月的时候一样[huh?])

我做错了什么


-bob

从一个不完整的日期开始,如2013年10月
,您需要进行一些字符串模拟,以使其进入
mmyy
。如果您实际上不需要时间戳输出,则根本不需要将其转换为任何类型的日期对象或时间戳。您只能进行字符串操作

list($month, $year) = explode("/", $date);
$newdate = $month . substr($year, 2);
// 1013
编辑(来自评论): 如果月份不总是两位数,但您的输出需要两位数的月份,请使用:

$newdate = str_pad($month, 2, "0", STR_PAD_LEFT) . substr($year, 2);

从一个不完整的日期开始,如2013年10月10日,您需要进行一些字符串模拟,以使其进入
mmyy
。如果您实际上不需要时间戳输出,则根本不需要将其转换为任何类型的日期对象或时间戳。您只能进行字符串操作

list($month, $year) = explode("/", $date);
$newdate = $month . substr($year, 2);
// 1013
编辑(来自评论): 如果月份不总是两位数,但您的输出需要两位数的月份,请使用:

$newdate = str_pad($month, 2, "0", STR_PAD_LEFT) . substr($year, 2);
该函数接受Unix时间戳作为其第二个参数。如果它不能识别它是一个数字,它可以被视为
0
(表示纪元,1969年12月31日)。要创建时间戳,我想你的意思是

$ex = strtotime($exp);
而不是

$ex = date($exp);
但即便如此,
strotime()
也不接受“10/2013”的日期格式

您可以使用旧的日期格式创建时间戳,如下所示:

$exp = '10/2013';
$date = explode('/', $exp);
$ex = mktime(0, 0, 0, $date[0], 1, $date[1]);
$e = date('m Y',$ex);
该函数接受Unix时间戳作为其第二个参数。如果它不能识别它是一个数字,它可以被视为
0
(表示纪元,1969年12月31日)。要创建时间戳,我想你的意思是

$ex = strtotime($exp);
而不是

$ex = date($exp);
但即便如此,
strotime()
也不接受“10/2013”的日期格式

您可以使用旧的日期格式创建时间戳,如下所示:

$exp = '10/2013';
$date = explode('/', $exp);
$ex = mktime(0, 0, 0, $date[0], 1, $date[1]);
$e = date('m Y',$ex);

您应该能够直接转换$date字段:

 $e = date('m/Y', strtotime($date));
如果没有,那么这应该是可行的

 $e = date('m/Y', strtotime(((string)$date)));

您应该能够直接转换$date字段:

 $e = date('m/Y', strtotime($date));
如果没有,那么这应该是可行的

 $e = date('m/Y', strtotime(((string)$date)));
不知道为什么你需要这么奇怪的格式呢

不知道为什么您需要这样一种奇怪的格式

其中,
my
表示“月”“年”。
$exp=日期(“my”)


其中
my
表示“月”“年”。

原始
$date
是什么类型的对象?A还是A?1969年是最小日期,是坏解析的副作用。什么类型的对象?一个
DateTime
对象偶然出现?原始的
$date
是什么类型的对象?A还是A?1969年是最小日期,是坏解析的副作用。什么类型的对象?一个
DateTime
对象偶然出现?以防万一
$month
并不总是两位数字就可以了
$newdate=str\u pad($month,2,“0”,stru pad\u左)。substr($年,2)instead@AaronW. 谢谢,并在上面添加。以防万一,
$month
并不总是两位数就可以了
$newdate=str\u pad($month,2,“0”,str\u pad\u LEFT)。substr($年,2)instead@AaronW. 谢谢,并在上面添加。
strotime
在这两种情况下都不能正确转换
mm/yyyy
strotime
在这两种情况下都不能正确转换
mm/yyyyy
这是我的信用卡处理程序想要的方式…顺便说一句,谢谢!这是我的信用卡处理程序想要的方式…顺便说一句,谢谢!