十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储、处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换的几种转换方式。
创新互联从2013年开始,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元淄川做网站,已为上家服务,为淄川各地企业和个人服务,联系电话:13518219792
一、在MySQL中完成
这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性。
1. UNIX时间戳转换为日期用函数: FROM_UNIXTIME()
一般形式:select FROM_UNIXTIME(1156219870);
2. 日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP()
一般形式:Select UNIX_TIMESTAMP('2006-11-04 12:23:00′);
举例:mysql查询当天的记录数:
$sql=”select * from message Where DATE_FORMAT(FROM_UNIXTIME(chattime),'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d') order by id desc”;
当然大家也可以选择在PHP中进行转换,下面说说在PHP中转换。
二、在PHP中完成
这种方式在PHP程序中完成转换,优点是无论是不是数据库中查询获得的数据都能转换,转换范围不受限制,缺点是占用PHP解析器的解析时间,速度相对慢。
1. UNIX时间戳转换为日期用函数: date()
一般形式:date('Y-m-d H:i:s', 1156219870);
2. 日期转换为UNIX时间戳用函数:strtotime()
一般形式:strtotime('2010-03-24 08:15:42');
首先你得定义一个表示时间的字段如:datetime,date,timestamp
其次是插入的数据要是时间格式如:'2016-5-6'
mysql 把时间换成时间戳进行储存在int栏位中还是直接用datetime好 我们用的都是 int ,毕竟 时间戳 可以用FROM_UNIXTIME()等时间函式转换成时间格式,个人感觉 int 比 datetime 计算 和 比较 简单一点,还有是就是 感觉 资料量大的话 int 应该比 datetime 更快 一点,我们公司 资料库大牛 ,建的所有的资料表关于 时间的都是 int
php mysql的时间戳用timestamp还是datetime栏位储存?
datetime是跟时区无关的,而timestamp是与时区有关的,所以php mysql的时间戳用应该是timestamp。
PHP 语法:
1、PHP 指令码可放置于文件中的任何位置,PHP 指令码以 ?php 开头,以 ? 结尾:?php 此处是 PHP 程式码?PHP 档案的预设副档名是 ".php",PHP 档案通常包含 HTML 标签以及一些 PHP 指令码程式码;
2、PHP 程式码中的注释不会被作为程式来读取和执行。它唯一的作用是供程式码编辑者阅读。注释用于:使其他人理解您正在做的工作 - 注释可以让其他程式设计师了解您在每个步骤进行的工作。提醒自己做过什么 - 大多数程式设计师都曾经历过一两年后对专案进行返工,然后不得不重新考虑他们做过的事情。注释可以记录您在写程式码时的思路。
phy mysql 如何将datetime转换成时间戳
?echo("当前时间为:".date("Y-m-d h:i:s")."br");$n=strtotime(date("Y-m-d h:i:s"));用PHP时间戳转化为数字 echo("用PHP时间戳转化为数字:".$n)."br";$n=date("Y-m-d h:i:s",$n);显示的时候再转化为时间:echo("显示的时候再转化为时间:".$n)."br";?
13位的时间戳可以直接用fastjson转换成时间格式吗
可以直接转换成Date物件,然后再用SimpleDateFormat格式化。
new SimpleDateFormat("日期格式").parseDate();
php 时间戳转换成时间
time();
是获得当前时间,但获得的是一整型
可以对此进行格式化
date("Y-m-d H:i:s", time()) ;
这样连时,分秒一起显示
date("Y-m-d ", time()); 只年示年月日
详细可以去看:hi.baidu./nb/blog/item/335376d97271342410df9b49.
SQL语句也有时间函式,可以去看这里
:user.qzone.qq./120868600/blog/1238421401
在mysql中,怎样把表“table1”里的栏位“addtime“从int型别的时间戳转换成datetime的日期格式?
使用mysql自带函式 FROM_UNIXTIME(时间戳,format) ,根据format字串格式化
例如
SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%S');
对于你的表操作,转化成 年-月-日 小时-分-秒格式
update table1 set addtime = FROM_UNIXTIME(addtime, '%Y-%m-%d %H:%i:%S')
转化成 年-月-日格式
update table1 set addtime = FROM_UNIXTIME(addtime, '%Y-%m-%d');
下面是其他格式
%W 星期名字(Sunday……Saturday)
%D 有英语字首的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”。
如何把10位时间戳转换成时间
要看你的 “时间戳” 是怎样定义的。
EXCELL 里 是 03/12/2014 这种格式, 你可以 用 sscanf() 读出。
int d,m,y;
char s[]="03/12/2014";
sscanf(s,"%2d/%2d/%4d",d,m,y);
printf("%d %d %d\n",d,m,y);
----
c 语言 timestampe 可以用 time.h 里的函式获取和处理
例如 已知 时间戳 数值: 1483040530
#includestdio.h
#includetime.h
int main(){
time_t rt;
struct tm * timeinfo;
char timE [80];
rt = 1483040530; 若已知数值
timeinfo = localtime ( rt ); 转当地时间,tm 结构
strftime ( timE,80,"%Y-%m-%d %I:%M:%S",timeinfo); 用自己喜欢的格式输出
printf ("%s", timE);
return 0;
}
输出: 2016-12-29 02:42:10
js里怎样把时间转换成时间戳
document.write(unixtime());
function unixtime(){
var dt = new Date();
var ux = Date.UTC(dt.getFullYear(),dt.getMonth(),dt.getDay(),dt.getHours(),dt.getMinutes(),dt.getSeconds())/1000;
return ux;
}
php 汉字时间转换成时间戳
php是老外开发的;你觉得老外会提供汉字处理的函式给你吗;我在撷取utf8的字串的时候比这个麻烦得多;
自己定义一个函式;貌似你这种方法最简便;还可以通过正则把里面的数字都提出来;
?php
$str='2014年09月22日 20:03';
preg_match_all('/\d/',$str,$arr);
$timer=implode('',$arr[0]);
$timer=strtotime($timer);
var_dump(date('Y-m-d H:i:s'));
?
如何建立mysql时间戳栏位
如何建立mysql时间戳栏位
如果是日期字串型别就是~
CREATE TABLE 表名
(
time datetime NOT NULL DEFAULT NOW(),
...
)
如果是时间戳~
CREATE TABLE 表名
(
time int NOT NULL DEFAULT CURRENT_TIMESTAMP(),
...
mysql将时间戳转成常用时间格式
在mysql中,一个时间字段的存储类型是int(11),怎么转化成字符类型,比方存储为13270655222,需要转化为yyyy -mm-dd的形式
使用 FROM_UNIXTIME函数,具体如下:
FROM_UNIXTIME(unix_timestamp,format)
返回表示 Unix 时间标记的一个字符串,根据format字符串格式化。format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。
根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 数字, 4 位
%y 年, 数字, 2 位
%a 缩写的星期名字(Sun……Sat)
%d 月份中的天数, 数字(00……31)
%e 月份中的天数, 数字(0……31)
%m 月, 数字(01……12)
%c 月, 数字(1……12)
%b 缩写的月份名字(Jan……Dec)
%j 一年中的天数(001……366)
%H 小时(00……23)
%k 小时(0……23)
%h 小时(01……12)
%I 小时(01……12)
%l 小时(1……12)
%i 分钟, 数字(00……59)
%r 时间,12 小时(hh:mm:ss [AP]M)
%T 时间,24 小时(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一个星期中的天数(0=Sunday ……6=Saturday )
%U 星期(0……52), 这里星期天是星期的第一天
%u 星期(0……52), 这里星期一是星期的第一天
%% 一个文字“%”。
所有的其他字符不做解释被复制到结果中。
如:
SELECT FROM_UNIXTIME(1234567890, '%Y-%m-%d %H:%i:%S')
可以自己指定格式。
将Excel文件中的数据保存到mysql中时,发现日期变成了数字。
当excel中的日期以数字显示就会变成类似44721.81这样的数字,这是从1900年开始的天数。
而UNIX时间戳的 0 按照 ISO 8601 规范为 :1970-01-01T00:00:00Z.。也就是从1970开始。
那当我们需要在其他地方处理excel这种时间时就只需要加上70年就行了。接下来的问题就是如何知道这70年的秒数或毫秒数,可以在excel输入1970/1/1然后转换成数字得到25569,这是天数,秒则为25569*24*60*60=2209161600。毫秒的话再乘1000。精度取到秒和毫秒按实际情况定。
在excel中有个日期2022/6/9 19:31:57.850,当其为数字格式时为44721.813864,就叫他Excel时间。
如果需要在java中将其转化为日期,Date date = new Date(new Long(时间戳);这里需要毫秒精度的时间戳。先将Excel时间*一天的毫秒数(24*60*60*1000)-70年(2209161600*1000)-8小时时差(8*60*60*1000)=1654774317850。代入上方得到2022/6/9 19:31:57.850,转换正确。
如果需要在mysql中将其转化为日期,FROM_UNIXTIME(时间戳,'%Y-%m-%d %H:%i:%S');这里只需要秒精度的时间戳。先将Excel时间*一天的秒数(24*60*60)-70年(2209161600)-8小时时差(8*60*60)=1654774317。代入上方得到2022/6/9 19:31:57,转换正确。
当excel中的日期到mysql中变成数字了,只需要FROM_UNIXTIME(Excel时间*86400-2209190400,'%Y-%m-%d %H:%i:%s')就可以转化成正常时间了