我有日期清单。我希望01-04-2014
显示为Jan 4
,01-05-2014
显示为Jan 5
。我该怎么做呢?这是我的代码:
$dates = array();
$timestamp = strtotime('-30 days');
for ($i = 0 ; $i <=30 ; $i++) {
//insert the date
$dates[$i]= date('m-d-Y', $timestamp);
//increase the day
$timestamp += 24 * 3600;
}
首先,我希望获得日期,然后转换为循环。
答案 0 :(得分:5)
使用DateTime
个对象:
$str = '01-04-2014';
$dateObj = DateTime::createFromFormat('m-d-Y', $str);
echo $dateObj->format('M d');
输出:
Jan 04
<强>解释强>
DateTime::createFromFormat()
允许您解析任何格式的日期字符串并创建DateTime对象DateTime::format()
方法用于将日期格式化为所需格式有关其他可用格式选项的列表,请参阅documentation for date()
。
答案 1 :(得分:2)
答案 2 :(得分:2)
尝试:
$dates = array();
$timestamp = strtotime('-30 days');
for ($i = 0 ; $i <=30 ; $i++) {
$dates[$i]= date('M j', $timestamp);
$timestamp += 24 * 3600;
}
答案 3 :(得分:1)
试试这个
$date = new DateTime('01-04-2014');
echo $date->format('d,M H:i:s');
答案 4 :(得分:0)
试试这个。它适用于所有PHP版本
$input = '01-04-2014';
$a = explode('-',$input);
$result = strftime("%b",mktime(0,0,0,$a[0])).''.intval($a[1]);
echo $result;