本文介绍了按月 unix 时间戳问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我提取月度报告时,它只显示从该月的第 2 天到该月最后一天的条目.例如,4 月份的报告仅显示:

When i pull a monthly report it's only showing entries from the 2nd day of the month up to the day be before the last of the month. For example a report for month of April only shows:

04/02/12 - 04/29/12

04/02/12 - 04/29/12

我可以修改什么来显示条目:

What can i modify to show entries:

04/01/12 - 04/30/12

04/01/12 - 04/30/12

$month = $_GET['month'];
if ($services =     $db->get_results("SELECT * from vw_newservices where month(from_unixtime(datetime)) = '$month'")) {
foreach ($services as $service) {
$datetime = date("m/d/y",$service->datetime);

谢谢

推荐答案

来自手册:

注意:如果使用 UNIX_TIMESTAMP() 和 FROM_UNIXTIME() 来转换TIMESTAMP 值和 Unix 时间戳值之间的转换是有损,因为映射在两个方向上都不是一对一的.为了例如,由于当地时区变化的约定,它是两个 UNIX_TIMESTAMP() 可以将两个 TIMESTAMP 值映射到相同的 Unix 时间戳值.FROM_UNIXTIME() 将该值映射回只有原始 TIMESTAMP 值之一.

请参阅此处.

如果你想拥有 unix_timestamps 而不考虑时区,你可以自己计算.

If you want to have unix_timestamps without consideration of time zones, you can calculate it yourself.

MySQL中:

从时间戳到unixtime:

From timestamp to unixtime:

SELECT timestampdiff(second, '1970-01-01', yourTimestampColumnOrValue);

另一种方式

SELECT timestampadd(second, yourTimestampColumnOrValue, '1970-01-01');

对于 SQL Server,请参阅此 链接.

这篇关于按月 unix 时间戳问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-18 18:07