Smarty中date_format日期格式化详解

php中格式化输出日期和时间可用:date('Y-m-d H:i:s',时间戳); 的形式输出,对应的是“年-月-日 时:分:秒”。

Smarty中date_format函数都支持哪些格式

date_format支持格式:

%a - 当前区域星期几的简写

%A - 当前区域星期几的全称

%b - 当前区域月份的简写

%B - 当前区域月份的全称

%c - 当前区域首选的日期时间表达

%C - 世纪值(年份除以 100 后取整,范围从 00 到 99)

%d - 月份中的第几天,十进制数字(范围从 01 到 31)

%D - 和 %m/%d/%y 一样

%e - 月份中的第几天,十进制数字,一位的数字前会加上一个空格(范围从 ' 1' 到 '31')

%g - 和 %G 一样,但是没有世纪

%G - 4 位数的年份

%h - 和 %b 一样

%H - 24 小时制的十进制小时数(范围从 00 到 23)

%I - 12 小时制的十进制小时数(范围从 00 到 12)

%j - 年份中的第几天,十进制数(范围从 001 到 366)

%k - 小时,24 小时格式,没有前导零

%l - 小时,12 小时格式,没有前导零

%m - 十进制月份(范围从 01 到 12)

%M - 十进制分钟数

%n - 换行符

%p - 根据给定的时间值为 `am' 或 `pm',或者当前区域设置中的相应字符串

%r - 用 a.m. 和 p.m. 符号的时间

%R - 24 小时符号的时间

%S - 十进制秒数

%t - 制表符

%T - 当前时间,和 %H:%M:%S 一样

%u - 星期几的十进制数表达 [1,7],1 表示星期一

%U - 本年的第几周,从第一周的第一个星期天作为第一天开始

%V - 本年第几周的 ISO 8601:1988 格式,范围从 01 到 53,第 1 周是本年第一个至少还有 4 天的星期,星期一作为每周的第一天。(用 %G 或者 %g 作为指定时间戳相应周数的年份组成。)

%w - 星期中的第几天,星期天为 0

%W - 本年的第几周数,从第一周的第一个星期一作为第一天开始

%x - 当前区域首选的时间表示法,不包括时间

%X - 当前区域首选的时间表示法,不包括日期

%y - 没有世纪数的十进制年份(范围从 00 到 99)

%Y - 包括世纪数的十进制年份

%Z - 时区名或缩写

%% - 文字上的 `%' 字符。

而在smarty模板中,如$time是php文件中assign过来的时间戳,在模板文件中写法为:

<{$time|date_format:'%Y-%m-%d %H:%M:%S'}> ,同样对应的输出格式为:“年-月-日 时:分:秒”。

 代码如下 复制代码

 
<?php

  //导入自定义smarty操作类SmartyInit.php
  include_once('class/SmartyInit.php');
  $smarty = new SmartyInit();
 
  //设置默认时区为上海
  date_default_timezone_set('Asia/Shanghai');
  //输出echo strtotime('now'),结果如:1245763672
  //可知strtotime('now')返回的是时间戳

  //也可是从数据库得到的时间戳
  $time = time();

  echo 'php格式化输出:<br />';
  echo '昨天:'.date('Y-m-d H:i:s', strtotime('-1 day')).'<br />';
  //date('Y-m-d H:i:s'),不写第二个参数,默认为当前时间
  //也可写为:date('Y-m-d H:i:s', strtotime('now'))
  echo '今天:'.date('Y-m-d H:i:s').'<br />';
  echo '明天:'.date('Y-m-d H:i:s', strtotime('1 day')).'<br />';
  echo '赋值时间戳:'.date('Y-m-d H:i:s', $time).'<br />';

  //strtotime('today')只输出当天日期,
  //strtotime('today 00:00:00')可输出时间
  $smarty->assign('yesterday', strtotime('yesterday'));
  $smarty->assign('today', strtotime('today 20:15:04'));
  $smarty->assign('tomorrow', strtotime('tomorrow'));
 
 
  $smarty->assign('yesterday1', strtotime('-1 day'));
  //等同$smarty->assign('today1', strtotime('0 day'));
  $smarty->assign('today1', strtotime('now'));
  $smarty->assign('tomorrow1', strtotime('1 day'));
  $smarty->assign('time', $time);
 
  $smarty->display('index.html');

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>smarty测试</title>
</head>

<body>

<p>smarty模板输出:<br />
昨天:<{$yesterday|date_format:'%Y-%m-%d %H:%M:%S'}>
<br />
今天:<{$today|date_format:'%Y-%m-%d %H:%M:%S'}>
<br />
明天:<{$tomorrow|date_format:'%Y-%m-%d %H:%M:%S'}>
</p>
<p>
昨天:<{$yesterday1|date_format:'%Y-%m-%d %H:%M:%S'}>
<br />
今天:<{$today1|date_format:'%Y-%m-%d %H:%M:%S'}>
<br />
明天:<{$tomorrow1|date_format:'%Y-%m-%d %H:%M:%S'}>
<br />
赋值时间戳:<{$time|date_format:'%Y-%m-%d %H:%M:%S'}>
</p>

smarty保留变量输出:<{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}>
</body>
</html>

时间: 2025-01-29 21:48:19

Smarty中date_format日期格式化详解的相关文章

Donet中C#日期格式化详解介绍

 代码如下 复制代码 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2009-07-5 13:21:25 Label2.Text = dt.ToFileTime().ToString();//127756416859912816 Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816 Label4.Text = dt.ToLocalTime().ToSt

AngularJS 日期格式化详解_AngularJS

AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了.所以我做了一些工作(你也可以觉得是小花招)来让浏览器做我想要的事. AngularJS的日期格式化有两种形式,一种是在HTML页面,一种是在JS代码里,都是用到AngularJS的过滤器$filter. HTML: date_expression 即 你在$scope中设的date类型变量(注意,一定是date object才正确), 也是要显

smarty手册-smarty中foreach循环语句详解

原文地址:smarty手册-smarty中foreach循环语句详解作者:谭博 {foreach}循环也有自身属性的变量,可以通过{$smarty.foreach.name.property}访问,其中"name"是name属性. Note: The name attribute is only required when you want to access a {foreach} property, unlike {section}. Accessing a {foreach} p

java DateFormat日期格式化详解

DateFormat支持风格或形状,你可以有四种不同类型格式日期对象.参考下表 Value Example DateFormat.SHORT. For example, 12/2/05 DateFormat.MEDIUM. For example, Dec 2, 2005. DateFormat.LONG. For example, December 2, 2005 DateFormat.FULL. For example, Friday, December 2, 2005 看一个简单的输出实例

jsp中freemarker 数字格式化详解

一.使用内建函数 c 特点: 不管其表现形式是怎样的(  代码如下 复制代码 例如"123,456.123,456". "123 456.123 456". "000 123 456.123 456 000". "123,456.123 456". "1,2345,6.123456") , 只要小数分割符是'.' 它就能转化成计算机能够识别的字符串形式,而且都是123456.123456,计算机处理的时候是

ruby中时间日期用法详解

做web应用,和时间打交道是不可免的.rails对ruby的时间模块做了扩展.本文作于2011年1月29日, ruby版本为1.8.7, rails版本为3.0.3 基本的时间转换 >> now=Time.now => Sat Jan 29 21:47:07 0800 2011 #utc秒数互相转换 >> now.to_i => 1296308827 >> Time.at(1296308827) => Sat Jan 29 21:47:07 0800

IOS中Json解析实例方法详解(四种方法)_IOS

作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此"http://www.bejson.com/"网站来进行JSON格式化校验(点击打开链接).此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便. 从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的iOS版本,可以使用第三方库来解析Json. 本文将介绍Tou

PHP也能干大事之PHP中的编码解码详解

PHP也能干大事之PHP中的编码解码详解        这篇文章主要介绍了PHP也能干大事之PHP中的编码解码详解,本文讲解了ASCII编解码.URL编解码.Base64编解码.HTML实体编解码.二进制.八进制.十进制.十六进制相互转换等内容,需要的朋友可以参考下 写在前面 PHP也能干大事是我总结的PHP语法特性及相关函数类库的经典用法,并不一定是真正能实现四两拨千斤的功效,但是掌握这些方法,可以在你的工作和学习上有一些帮助,希望大家能集思广益,将<PHP也能干大事>丰富得更精彩!转载请注

Android中Service(后台服务)详解

  这篇文章主要介绍了Android中Service(后台服务)详解,本文讲解了Service的概念.作用.生命周期.启动方式和代码实例等内容,需要的朋友可以参考下 1.概念: (1).Service可以说是一个在后台运行的Activity.它不是一个单独的进程,它只需要应用告诉它要在后台做什么就可以了. (2).它要是实现和用户的交互的话需要通过通知栏或者是通过发送广播,UI去接收显示. (3).它的应用十分广泛,尤其是在框架层,应用更多的是对系统服务的调用. 2.作用: (1).它用于处理一