Php用date()生成(转换)RSS2.0中的RFC822时间格式的方法
RSS 2.0中要求标签的格式为RFC822标准,即像这样的时间格式。
Sun, 10 Jun 2007 09:34:50 +0800
在Php中date()函数可以直接把UNIX时间戳格式的时间转换为RFC822
某些网站上,说date函数是作用于timestamp的,但是就我在一台Windows操作系统和另外一台UNIX操作系统机器上的测试结果来说,用date函数转换MySQL中timestamp类型的时间格式,得到的结果永远都是Thu, 01 Jan 1970 07:33:27 +0700
具体是timestamp并不是指MySQL中的timestamp,还是真的存在错误,我们不需要关心了。
言归正传,如果你只是想生成一个RFC822标准的时间格式,那么你可以在添加信息,比如新闻或是Blog文章的时候,用time()函数取得发布信息时的UNIX时间戳并写进数据库Date字段中,然后在生成RSS时
<?php date("r",$rs->Date)?>
就可以了。
但如果你是想把timestamp类型的时间格式转换为RFC822,那么可能就要麻烦一点点。
首先把timestamp中的年月日时分秒的信息单独取出(具体取出的方法无所谓,可以用split分割,也可以substr截取等等),然后用mktime( 时, 分, 秒, 月, 日, 年)函数得到一个UNIX时间戳,再用date函数转换就可以了。
Sun, 10 Jun 2007 09:34:50 +0800
在Php中date()函数可以直接把UNIX时间戳格式的时间转换为RFC822
某些网站上,说date函数是作用于timestamp的,但是就我在一台Windows操作系统和另外一台UNIX操作系统机器上的测试结果来说,用date函数转换MySQL中timestamp类型的时间格式,得到的结果永远都是Thu, 01 Jan 1970 07:33:27 +0700
具体是timestamp并不是指MySQL中的timestamp,还是真的存在错误,我们不需要关心了。
言归正传,如果你只是想生成一个RFC822标准的时间格式,那么你可以在添加信息,比如新闻或是Blog文章的时候,用time()函数取得发布信息时的UNIX时间戳并写进数据库Date字段中,然后在生成RSS时
<?php date("r",$rs->Date)?>
就可以了。
但如果你是想把timestamp类型的时间格式转换为RFC822,那么可能就要麻烦一点点。
首先把timestamp中的年月日时分秒的信息单独取出(具体取出的方法无所谓,可以用split分割,也可以substr截取等等),然后用mktime( 时, 分, 秒, 月, 日, 年)函数得到一个UNIX时间戳,再用date函数转换就可以了。