社区
基础编程
帖子详情
唠叨帮忙喔 php mysql的日期问题
phpeye
2007-03-07 01:42:11
表中有一个字段是date1 是用来放秒的
如何得到 今日 本周 本月 这三个的访问量?
谢谢,在线等你
...全文
749
34
打赏
收藏
唠叨帮忙喔 php mysql的日期问题
表中有一个字段是date1 是用来放秒的 如何得到 今日 本周 本月 这三个的访问量? 谢谢,在线等你
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
34 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Meteorlet
2007-03-14
打赏
举报
回复
请确定你的date1是Int整型,而不是time字段
然后用以下SQL查询,没有测试过
当天:SELECT * FROM tbl WHERE TODAYS(FROM_UNIXTIME(date1)) = TODAYS(Now())
昨天:SELECT * FROM tbl WHERE TODAYS(FROM_UNIXTIME(date1)) = TODAYS(DATESUB(Now(), INTERVAL 1 DAY))
本周:SELECT * FROM tbl WHERE TODAYS(FROM_UNIXTIME(date1)) >= TODAYS(DATESUB(Now(), INTERVAL (DATE_FORMAT(FROM_UNIXTIME(date1), "%w") DAY)) AND TODAYS(FROM_UNIXTIME(date1)) <= TODAYS(DATEADD(Now(), INTERVAL (7 - DATE_FORMAT(FROM_UNIXTIME(date1), "%w")) DAY))
本月也是一样
fishfun123
2007-03-14
打赏
举报
回复
假设LZ的date1为VARCHAR(32), 内容为
<?php $query="insert into db.tbl(date1) values('" . time() . "')"; ?>
下面的代码可求出date1的上限和下限.
<?php
$someday = strtotime("yesterday");
echo "Select a date: " . $someday . "(" . date("Y-m-d H:i:s", $someday) . ")";
//Total for one day or today
$time_from = mktime(0, 0, 0, date("m", $someday), date("d", $someday), date("Y", $someday));
$time_to = mktime(0, 0, 0, date("m", $someday), date("d", $someday) + 1, date("Y", $someday));
echo "</p>Total for one day or today";
echo "</br>" . $time_from . "(" . date("Y-m-d H:i:s", $time_from) . ")";
echo " - " . $time_to . "(" . date("Y-m-d H:i:s", $time_to) . ")";
//Total for one week or this week
//Week starts on Monday
$w = (date("w", $someday) == 0)? 7: date("w", $someday); //1-Monday, ... , 6-Saturday, 7-Sunday
$time_from = mktime(0, 0, 0, date("m", $someday), date("d", $someday) - $w + 1, date("Y", $someday));
$time_to = mktime(0, 0, 0, date("m", $someday), date("d", $someday) - $w + 8, date("Y", $someday));
echo "</p>Total for one week or this week - Week starts on Monday";
echo "</br>" . $time_from . "(" . date("Y-m-d H:i:s", $time_from) . ")";
echo " - " . $time_to . "(" . date("Y-m-d H:i:s", $time_to) . ")";
//Week starts on Sunday
$w = date("w", $someday); //1-Monday, ... , 6-Saturday, 0-Sunday
$time_from = mktime(0, 0, 0, date("m", $someday), date("d", $someday) - $w, date("Y", $someday));
$time_to = mktime(0, 0, 0, date("m", $someday), date("d", $someday) - $w + 7, date("Y", $someday));
echo "</p>Total for one week or this week - Week starts on Sunday";
echo "</br>" . $time_from . "(" . date("Y-m-d H:i:s", $time_from) . ")";
echo " - " . $time_to . "(" . date("Y-m-d H:i:s", $time_to) . ")";
//Total for one month or this month
$time_from = mktime(0, 0, 0, date("m", $someday), 1, date("Y", $someday));
$time_to = mktime(0, 0, 0, date("m", $someday) + 1, 1, date("Y", $someday));
echo "</p>Total for one month or this month";
echo "</br>" . $time_from . "(" . date("Y-m-d H:i:s", $time_from) . ")";
echo " - " . $time_to . "(" . date("Y-m-d H:i:s", $time_to) . ")";
//Total for one year or this year
$time_from = mktime(0, 0, 0, 1, 1, date("Y", $someday));
$time_to = mktime(0, 0, 0, 1, 1, date("Y", $someday) + 1);
echo "</p>Total for one year or this year";
echo "</br>" . $time_from . "(" . date("Y-m-d H:i:s", $time_from) . ")";
echo " - " . $time_to . "(" . date("Y-m-d H:i:s", $time_to) . ")";
?>
运行结果:
Select a date: 1173754062(2007-03-12 22:47:42)
Total for one day or today
1173672000(2007-03-12 00:00:00) - 1173758400(2007-03-13 00:00:00)
Total for one week or this week - Week starts on Monday
1173672000(2007-03-12 00:00:00) - 1174276800(2007-03-19 00:00:00)
Total for one week or this week - Week starts on Sunday
1173589200(2007-03-11 00:00:00) - 1174190400(2007-03-18 00:00:00)
Total for one month or this month
1172725200(2007-03-01 00:00:00) - 1175400000(2007-04-01 00:00:00)
Total for one year or this year
1167627600(2007-01-01 00:00:00) - 1199163600(2008-01-01 00:00:00)
fishfun123
2007-03-14
打赏
举报
回复
LZ的数据库里到底是什么内容? 为何不贴出一些数据作为参考呢?
lzkd
2007-03-14
打赏
举报
回复
也许我比较笨,还是没明白.楼主为什么想从time()中得到本周,本日等的流量?好象八杆子打不着呀
xuzuning
2007-03-14
打赏
举报
回复
“我是说表里面有这么一个字段是用来放time()的”
“我再补充一下吧
我有一个表,其中有一个时间字段叫date1,是time型的,即插入的时候是以time()插入的”
你已经出现概念性错误啦!
1、mysql中没有time函数,可见“用来放time()的”中的time()是php的函数(返回自1970年1月1日0时以来的秒数)
2、mysql中的time类型字段为时间字段,只保存时间而与日期无关
这两个东西并不等价,所以你的要求并不可能实现。
ice_berg16
2007-03-14
打赏
举报
回复
case 1: //今天
$today = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
$tmp .= (empty($tmp)?"WHERE":"AND") . " t.telTime > $today ";
break;
case 2: //昨天
$today = mktime(0, 0, 0, date("m"), date("d"), date("Y"));
$yestoday = mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
$tmp .= (empty($tmp)?"WHERE":"AND") . " t.telTime BETWEEN $yestoday AND $today ";
break;
case 3: //本星期
$w = date("w") == 0 ? 7 : date("w");
$thisweek = mktime(0, 0, 0, date("m"), date("d")-$w+1, date("Y"));
$tmp .= (empty($tmp)?"WHERE":"AND") . " t.telTime > $thisweek ";
break;
case 4: //本月
$thismonth = mktime(0, 0, 0, date("m"), 1, date("Y"));
$tmp .= (empty($tmp)?"WHERE":"AND") . " t.telTime > $thismonth ";
break;
phpeye
2007-03-14
打赏
举报
回复
答案已经有人给出
但我们的讨论的意义已经超出了答案的意义.
作为这么一个日期问题的帖子应该对我这一阶段的和后来学习PHP的人有一个借鉴的机会.
谢谢所有参与的人!!
phpeye
2007-03-14
打赏
举报
回复
嗯,是我说的不清楚,我有罪!
我的意思是用$tt=time();产生秒数后再insert进表中的date1
phpeye
2007-03-13
打赏
举报
回复
如果能解决不用唠叨也行的,对吧,兄弟们!
如果不用mysql自带的函数那就怎么实现呢?
我的意思是本日,本周,本月,而不是一日,一周,一月.
free_kyy
2007-03-09
打赏
举报
回复
一定要唠叨啊
zhys9
2007-03-09
打赏
举报
回复
$time = time();
今天的条件:data1 > strtotime(date('Ymd',$time))
本周的条件:data1 > strtotime(date('Ymd',$time))
本月的条件:data1 > strtotime(date('YmW',$time))
cho__cho
2007-03-09
打赏
举报
回复
可不可以用MYSQL中的to_days()函数来查询,楼主只要求统计到天的
gu1dai
2007-03-09
打赏
举报
回复
翻mysql手册啊,兄弟。
pswdf
2007-03-09
打赏
举报
回复
本周的SQL:
"SELECT * FROM table WHERE WEEK(FROM_UNIXTIME(`time1`, "%Y-%m-%d"),1) = ".intval(date("W"));
天降大任于斯
2007-03-08
打赏
举报
回复
对本周的方法:
$week = date("W"); //本年的第几周,从星期一开始计算
$year = date("y"); //本年
$start = $week*7*24*60*60 + $year //本周初
$end = $start*7*24*60*60 //本周末
where data1>$start AND $data1<end
date()函数有个date("t")可以返回当前月份应有的天数,就分出了30天,29天,31天了
其他的就如前面的组合就可以
效率不高,但基本实现了需求
还有很多个时间函数
天降大任于斯
2007-03-08
打赏
举报
回复
对本日最保险最原始的方法:
$year = date("y"); //本年
$month = date("n"); //本月
$day = date("j"); //本日
$today = mktime(0,0,0,$month,$day,$year);
WHERE data1>$today AND data1<($today-24*60*60)
phpeye
2007-03-08
打赏
举报
回复
本日=08
本月=03
本周=Thursday
这样真的可以吗?
bflovesnow
2007-03-08
打赏
举报
回复
为啥不看看手册呢??
phpeye
2007-03-08
打赏
举报
回复
zeroleonhart,给点例子看看呢,好吗
zeroleonhart
2007-03-08
打赏
举报
回复
活用php里date和strtotime函数
加载更多回复(14)
30天快速从零开始Java基础入门到高级编程
1、基于JDK11,将Java8、Java9、Java10、Java11一网打尽;2、课程中,使用到企业一线开发的两种工具:Eclipse和IDEA学习坡度低:更适合零基础学员自Java语言起源开始,循序渐进,知识点剖析细致且每章配有大量练习,让你步步为营,学的透彻、练的明白;语言拒绝
唠叨
:直白、通俗易懂拒绝晦涩难懂的呆板教学,语言生动幽默,举例形象深入浅出,迅速让你把握
问题
本质,四两拨千斤;思维方式:“大处着眼,小处着手”“逆向思维,反证法”“透过
问题
看本质”
SpringBoot学习笔记
微服务阶段 JavaSE:面向对象
MySql
+ JDBC:持久化存储 html + css +JavaScript + Jquery + 框架:视图,框架 JavaWeb:开始独立开发MVC三层架构的网站(原始) SSM:框架(简化了我们的开发流程,配置也开始较为复杂) war:Tomcat运行 Spring再简化:SpringBoot - Jar(内嵌Tomcat)- 微服务架构 SpringCloud: Spring Spring是一个开源框架,2003年兴起的一个轻量级的Java开发框架
一个程序员多年的收藏
2010 - 01 - 15 缩略显示 [置顶] 一个程序员的多年珍藏(1月23日最新更新) 文章分类:Java编程 程序员珍藏的东西会是什么?呵呵,除了平时写的代码,就是那些百看不厌的电子书了。 昨天很郁闷,我用了5年的移动硬盘,莫名奇妙的坏掉了。里面40G的资料全部报销了。 为了不再重蹈覆辙,我决定把重要的电子书都放到网络硬盘上去备份。索性将这些资料的下载方式公布
多年的收藏
2010-01-15缩略显示[置顶] 一个程序员的多年珍藏(1月23日最新更新)文章分类:Java编程 程序员珍藏的东西会是什么?呵呵,除了平时写的代码,就是那些百看不厌的电子书了。
昨天很郁闷,我用了5年的移动硬盘,莫名奇妙的坏掉了。里面40G的资料全部报销了。
为了不再重蹈覆辙,我决定把重要的电子书都放到网络硬盘上去备份。索性将这些资料的下载方式公布出来,与大家分享,一定会有你想要的!
下载的兄弟注意了,点击下载
一个程序员的多年珍藏--收藏
2010 - 01 - 15 [置顶] 一个程序员的多年珍藏(1月23日最新更新) 文章分类:Java编程 程序员珍藏的东西会是什么?呵呵,除了平时写的代码,就是那些百看不厌的电子书了。 昨天很郁闷,我用了5年的移动硬盘,莫名奇妙的坏掉了。里面40G的资料全部报销了。 为了不再重蹈覆辙,我决定把重要的电子书都放到网络硬盘上去备份。索性将这些资料的下载方式公布出来,与大家分享,
基础编程
21,886
社区成员
140,364
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章