风's profile风来西林PhotosBlogLists Tools Help

Blog


    September 29

    用Smarty模板生成html文件

    在Smarty模板函数里面有这样一个方法:fetch("template.htm"),他和display("template.htm");最大的不同就是fetch()是把内容输出给一个变量,而display()是把内容输出给浏览器,这样我们就可以用一个变量来接收fetch()的输出,然后把他写入到文件中去.

    require_once(DIRROOT.'smarty/Smarty.class.php');
    $smarty = new Smarty();
    $smarty->template_dir = DIRROOT.'/smarty/template/';
    $smarty->compile_dir = DIRROOT.'/smarty/tempcomp/';
    $smarty->cache_dir = DIRROOT.'/smarty/caches/';
    $smarty->cache_lifetime =   600 ;
    $smarty->left_delimiter = "{-";
    $smarty->right_delimiter = "-}";
    $smarty->caching = false;
    //$smarty->caching = true;
    $html=$smarty->fetch("template.htm");
    $fp = fopen($file_name,"w+");
    if(!fwrite($fp,$html)){
       die('生成html文件失败!');
    }
    fclose($fp);

    September 15

    smarty学习笔记 格式化时间

    date_format[格式化日期]

    Parameter Position Type Required Default Description
    1 string No %b %e, %Y This is the format for the outputted date.
    输出日期的格式。
    2 string No n/a This is the default date if the input is empty.
    输入为空时的默认时间格式。

    格式化从函数strftime()获得的时间和日期。
    Unix或者mysql等的时间戳记(parsable by strtotime)都可以传递到smarty。
    设计者可以使用date_format完全控制日期格式。
    如果传给date_format的数据是空的,将使用第二个参数作为时间格式。

    Example 5-8. date_format[日期格式]

    index.php:

    $smarty = new Smarty;
    $smarty->assign('yesterday', strtotime('-1 day'));
    $smarty->display('index.tpl');

    index.tpl:


    {$smarty.now|date_format}
    {$smarty.now|date_format:"%A, %B %e, %Y"}
    {$smarty.now|date_format:"%H:%M:%S"}
    {$yesterday|date_format}
    {$yesterday|date_format:"%A, %B %e, %Y"}
    {$yesterday|date_format:"%H:%M:%S"}

    输出结果:

    Feb 6, 2001
    Tuesday, February 6, 2001
    14:33:00
    Feb 5, 2001
    Monday, February 5, 2001
    14:33:00

    Example 5-9. date_format conversion specifiers[日期转换说明]

    %a - abbreviated weekday name according to the current locale
    (根据当地格式输出“星期”缩写格式)

    %A - full weekday name according to the current locale
    (根据当地格式输出“星期”全称格式)

    %b - abbreviated month name according to the current locale
    (根据当地格式输出“月”缩写格式)

    %B - full month name according to the current locale
    (根据当地格式输出“月”全称格式)

    %c - preferred date and time representation for the current locale

    %C - century number (the year divided by 100 and truncated to an integer, range 00 to 99)

    %d - day of the month as a decimal number (range 00 to 31)

    %D - same as %m/%d/%y

    %e - day of the month as a decimal number, a single digit is preceded by a
    space (range 1 to 31)

    %g - Week-based year within century [00,99]

    %G - Week-based year, including the century [0000,9999]

    %h - same as %b

    %H - hour as a decimal number using a 24-hour clock (range 00 to 23)

    %I - hour as a decimal number using a 12-hour clock (range 01 to 12)

    %j - day of the year as a decimal number (range 001 to 366)

    %k - Hour (24-hour clock) single digits are preceded by a blank. (range 0 to 23)

    %l - hour as a decimal number using a 12-hour clock, single digits preceeded by
    a space (range 1 to 12)

    %m - month as a decimal number (range 01 to 12)

    %M - minute as a decimal number

    %n - newline character

    %p - either `am' or `pm' according to the given time value, or the corresponding strings for the current locale

    %r - time in a.m. and p.m. notation

    %R - time in 24 hour notation

    %S - second as a decimal number

    %t - tab character

    %T - current time, equal to %H:%M:%S

    %u - weekday as a decimal number [1,7], with 1 representing Monday

    %U - week number of the current year as a decimal number, starting with the first Sunday as the first day of the first week

    %V - The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1
    is the first week that has at least 4 days in the current year, and with Monday as the first day of the week.

    %w - day of the week as a decimal, Sunday being 0

    %W - week number of the current year as a decimal number, starting with the first Monday as the first day of the first week

    %x - preferred date representation for the current locale without the time

    %X - preferred time representation for the current locale without the date

    %y - year as a decimal number without a century (range 00 to 99)

    %Y - year as a decimal number including the century

    %Z - time zone or name or abbreviation

    %% - a literal `%' character


    PROGRAMMERS NOTE: date_format is essentially a wrapper to PHP's strftime()
    function. You may have more or less conversion specifiers available depending
    on your system's strftime() function where PHP was compiled. Check your
    system's manpage for a full list of valid specifiers.

    程序员提示:date_format本质上是php的strftime()函数的一个包装。
    当php被编译的时候你可以或多或少的依靠系统的strftime()转换有效的区分符。
    可以查看系统手册的有效区分符的全表.