我的日期格式为030512
(ddmmyy)
但是我将这个转换为日期可用格式时遇到了麻烦,我可以添加几天。
基本上......我从文本文件中提取了上面的日期,现在我需要能够为它添加一些天。但我无法以此格式解析日期。
有没有其他方法可以做到这一点,而不是像这样:
// I have a date in this format
$date = '030512'; // 03 May 2012
$day = substr($date,0,2);
$month = substr($date, 2,2);
$year = substr($date, 4,2);
$date_after = $day . "-" . $month . "-".$year;
// Now i need to add x days to this
$total_no_nights = 010; // must be this format
$days_to_add = ltrim($total_no_nights,"0"); // 10, remove leading zero
// how do i add 10 days to this date.
答案 0 :(得分:4)
你可以这样做(php> = 5.3):
$date = DateTime::createFromFormat('dmy', '030512');
$date->modify('+1 day');
echo $date->format('Y-m-d');
http://www.php.net/manual/en/datetime.createfromformat.php
对于php< 5.3:
$dateArray = str_split('030512', 2);
$dateArray[2] += 2000;
echo date("d/m/Y", strtotime('+1 day', strtotime(implode('-', array_reverse($dateArray)))));
答案 1 :(得分:3)
使用您已有的月/日/年来尝试:
$date = "$month/$day/$year";
$change = '+10 day';
echo date("d/m/Y", strtotime($change, strtotime($date)));
答案 2 :(得分:1)
你不能用字符串进行日期操作,因为它们不是日期。在PHP中,您可以使用Unix时间戳(实际上是整数...)或DateTime对象。在你的情况下:
$timestamp = strtotime('-10 days', mktime(0, 0, 0, $month, $day, $year));
echo date('r', $timestamp);
......或:
$object = new DateTime("$year-$month-$day");
$object->modify('-10 days');
echo $object->format('r');
另请注意,010
是一个八进制数字,对应于十进制的8
。
答案 3 :(得分:1)
假设日期总是在将来(或者至少在2000年1月1日之后),那你就错了:
// I have a date in this format
$date = '030512'; // 03 May 2012
$day = substr($date,0,2);
$month = substr($date, 2,2);
$year = substr($date, 4,2);
// dd-mm-yy is not a universal format but we can use mktime which also gives us a timestamp to use for manipulation
$date_after = mktime( 0, 0, 0, $month, $day, $year );
// Now i need to add x days to this
$total_no_nights = "010"; // must be this format
$days_to_add = intval( $total_no_nights ); // No need to use ltrim
// Here's the "magic". Again it returns a timestamp
$new_date = strtotime( "+$days_to_add days", $date_after );
使用DateTime对象会更容易,但是你说你没有使用PHP5.3。
答案 4 :(得分:0)
使用sql中的convert函数可以以适当的格式获取日期。
可以在php中执行操作来操纵日期。我希望能回答你的问题。