findall日期输出到模板如何设置格式

#1 血神

<{$hh.addtime}>   这个输出的格式为10 14 2012 12:00AM
我想让其显示成2012-10-14
论坛里面说用smart的date_format,但是显示出来的却是今天的时间了。模板里面的代码是这样写的<{$hh.addtime|date_format:"%Y-%m-%d"}>,结果显示的是2012-10-16。应该是2012-10-14啊,奇怪
格式化的根本就不是$hh.addtime

问问jake,模板里面能格式化怎搞,还有个就是咋在控制器里面写代码,对findall的某个值(比如这里的addtime值)进行格式化或者计算之后再输出到模板


2012-10-16 17:47:58

#2 jake

和findAll没什么关系,是你的数据存成“10 14 2012 12:00AM”这种比较古怪的方式所致。

一般PHP程序的数据库设计,时间字段会存成时间戳或者“2012-10-16 19:58:46”的标准时间方式,时间戳最广泛使用。

而Smarty的date_format,也就是针对上面两种时间格式进行格式化的,所以时间戳是最好使的:http://www.speedphp.com/smarty/language.modifier.date.format.html

--------------

不清楚你设计数据库存成这种“10 14 2012 12:00AM”不常用的方式是为什么,不过如果在不改变入库字段形式的前提下,你只能通过自行编写模板函数来解决你的问题了。

2012-10-16 20:00:41

#3 血神

jake 发表于 2012-10-16 20:00
和findAll没什么关系,是你的数据存成“10 14 2012 12:00AM”这种比较古怪的方式所致。

一般PHP程序的数据 ...
我之前一个帖子里面也有提到的,数据库里面的是2000-5-5和2012-6-20 17:28:02这种存储的,mssql2000的数据库。特殊要求必须用这种数据库,并且还不能更改字段属性换成别的格式。之前月份中文,给解决了,现在显示的就这样,很是纠结。

Smarty的date_format这个也解决不了,

不能让这些字段输出到模板的时候用程序转换么?

2012-10-17 14:33:03

#4 血神

估计环境问题导致的吧,这个问题就这样咯,呵呵

2012-10-17 14:44:22