2011-04-30 132 views
0

我有两个日期字符串合成我想从两个日期字符串计算这些东西。 1)年差 例如PHP日期差异

$date1 = "20/04/2002"; 
$date2= "20/04/2010"; 
$five_yers_back = <Five years back that is 2005> 

同样

$date2= "20/05/2010"; 
$a_week = "< seven days back from date2 >"; 

plz帮助

回答

0

使用的strtotime +日期

http://pl2.php.net/manual/en/function.strtotime.php 
http://pl2.php.net/manual/en/function.date.php 
0

我敢肯定有上课要做到这一点您。但作为C程序员,我更喜欢tm structre的基础知识。这里PHP相当于例如

<?php 

$d1 = "20/04/2002"; 
$d1rec = strptime($d1, "%d/%m/%Y"); 
$sec = 0; 
$min = 0; 
$hour = 0; 
$day = $d1rec["tm_mday"]; 
$mon = $d1rec["tm_mon"] + 1; # Because tm_mon is 0-11 
$year = $d1rec["tm_year"]; 
print("DATE: " . strftime("%d/%m/%Y\n" 
       , mktime($hour,$min,$sec,$mon,$day,$year))); 
print("+1WK: " . strftime("%d/%m/%Y\n" 
       , mktime($hour,$min,$sec,$mon,$day+7,$year))); 
print("+2WK: " . strftime("%d/%m/%Y\n" 
       , mktime($hour,$min,$sec,$mon,$day+14,$year))); 
print("+1YR: " . strftime("%d/%m/%Y\n" 
       , mktime($hour,$min,$sec,$mon,$day,$year+1))); 
print("-6MO: " . strftime("%d/%m/%Y\n" 
       , mktime($hour,$min,$sec,$mon-6,$day,$year))); 

?> 

所以基本上

  • 使用strptime到您的字符串解析成一个结构数组
  • 打破数组变量
  • 使用mktime重组(修改后的)变量引入一个time_t整数(并采取每月/每年的打包)
  • 使用strftime返回一个stri ng