如何重新定义time()函数 PHP
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何重新定义time()函数 PHP相关的知识,希望对你有一定的参考价值。
linux空间 有8小时时差。 全局有使用time()函数 怎么才能通过一个time(() = 来减去8小时呢,谢谢!
参考技术A 做个全局设置就可以了 因为在php5以及起以上的版本,默认情况下的时间会与本地时间出现时差,时间函数的输出结果总是相差8个小时,8个小时,很熟悉的时差,猜测应该是时区设置的原因。通过观察phpinfo()函数的输出结果,发现有一个参数date.timezone默认设置为UTC,是格林威治时间8 U& x9 G; V/ T5 i, ^。打开php.ini发现没有date.timezone的选项,估计是采用默认值,PHP手册中有完整的时区列表。对于东八区,可用的有Asia/Chongqing、 Asia/Chungking、Asia/Hongkong、Asia/Shanghai、Asia/Taipei、PRC、Etc/GMT+8等(呵呵 不知道为什么没有beijing),任选一个就可以了。方法1、在代码中增加如下命令:
<?php
date_default_timezone_set('PRC');//其他东八去时间表示均可
?>
方法2、配置php.ini文件,设置如下:
date.timezone=PRC; //中国:PRC如果没有此项在任意位置添加即可,添加后别忘记重启APACHE服务器 参考技术B 方法2、配置php.ini文件, 参考技术C $hours = time() + (8 * 60 * 60); 这个基本正解! 参考技术D $hours = time() + (8 * 60 * 60);
如何在发布模式下使用宏重新定义函数?
【中文标题】如何在发布模式下使用宏重新定义函数?【英文标题】:How do I use a macro to redefine a function in release mode? 【发布时间】:2012-07-10 03:16:55 【问题描述】:使用 C++,我需要一个宏来替换在发布模式下运行的函数以不执行任何操作。因此,在调试模式下,该函数将被执行,但在发布模式下则不会。
类似这样的:
static void foo(int,int)
#ifdef NDEBUG
#define foo(x,y)
#endif
...函数体在单独的 .cpp 文件中定义,并且是类的一部分,这就是为什么我认为这不起作用?
实际代码..
标题
static void ValidateInput(const SeriesID *CurrentSeries, const AEnum_TT_TICK_ROUND& roundType = TT_TICK_ROUND_NONE);
.cpp
void TTBaseTick::ValidateInput(const SeriesID *CurrentSeries, const AEnum_TT_TICK_ROUND& roundType)
#ifndef _DEBUG
if (!CurrentSeries)
throw TTTick::Ex(TTTick::SeriesNull);
else if (CurrentSeries->precision <= 0)
throw TTTick::Ex(TTTick::PrecisionInvalid);
else if(!roundType.IsValidValue(roundType))
throw TTTick::Ex(TTTick::InvalidParam);
#endif
【问题讨论】:
为什么不能对 .cpp 文件中的函数定义本身这样做? foo 是在其他地方声明的类的静态成员函数吗? 神秘 - 我得到一个没有生成目标文件的错误 H3nr1x - 不,它只在这个类中声明 【参考方案1】:static void foo(int,int); // declaration
// Definition in your cpp file.
void foo( int x, int y )
#ifndef NDEBUG
// Code for debug mode
#endif
【讨论】:
这不起作用,因为我得到一个错误,没有生成目标文件 @user1513555 对我来说工作正常。可能是其他问题。你能把代码贴在你使用它的地方吗? 发表在原帖中,我想可能是因为数据类型实际上不是整数? @Bullsfan127AEnum_TT_TICK_ROUND
是枚举吗?
是的,它是一个编译时敏捷枚举【参考方案2】:
static void foo_(int, int);
#ifdef NDEBUG
#define foo(x,y)
#else
#define foo(x,y) foo_(x,y)
#endif
【讨论】:
如果他能改变函数,他还不如把条件编译放在它的实现中,跳过所有引入的函数式宏的问题。 是的,我不能更改函数或其名称,只是希望它在不调试时基本跳过函数调用。优化代码以上是关于如何重新定义time()函数 PHP的主要内容,如果未能解决你的问题,请参考以下文章
PHP time() 有时会关闭几秒钟,然后在下次调用时更正