localtime报告的tm_小时(1小时)和tm_isdst(1小时)不正确。
笔记:
有许多关于这个问题的SO帖子,但没有一个直接解决这个问题。
这是一个错误还是我做错了什么?
我的代码如下(使用MSVC“Win32 Debug”编译,在Win10-64上运行):
// localtime.c - Test Program for localtime()
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
int
main(int argc,char **argv)
{
time_t utc;
struct tm *tm;
utc = time( NULL );
tm = localtime( &utc );
printf( "Program localtime.exe:\n" );
printf( "Env Var TZ: %s\n", getenv( "TZ" ) );
printf( "tm->tm_hour: %d\n", tm->tm_hour );
printf( "tm->tm_isdst: %d\n", tm->tm_isdst );
printf( "Press any key to exit...\n" );
getch();
exit( 0 );
return( 0 );
}
程序输出(美国东部时间上午10:20运行)
Program localtime.exe:
Env Var TZ: (null)
tm->tm_hour: 11
tm->tm_isdst: 1
非常非常奇怪。如果我设置env var“TZ”,localtime()可以正常工作。奇怪的是,我把它设置成什么都没有区别,例如“XXX”。
我猜你在时间函数中使用了一个未初始化的值,而没有捕获它的返回值。
试试这个:
time_t ltime;
struct tm *tm;
ltime = time( NULL );
tm = localtime( <ime );
错误日志对于发现程序中的错误是非常有帮助的,但是有些时候它也会将应用程序的结构暴露给外部。为了有效的保护你的应用程序不受到由此而引发的问题。你需要将在你的服务器上使用开发和生产(线上)两套不同的配置。 开发环境 为了在开发环境中显示所有可能的错误,将你的 php.ini 进行如下配置: display_errors = On display_startup_errors = On error_re
1.1.2. 错误报告 没有不会犯错的开发者,PHP的错误报告功能将协助您确认和定位这些错误。可以PHP提供的这些详细描述也可能被恶意攻击者看到,这就不妙了。使大众看不到报错信息,这一点很重要。做到这一点很容易,只要关闭display_errors,当然如果您希望得到出错信息,可以打开log_errors选项,并在error_log选项中设置出错日志文件的保存路径。 由于出错报告的级别设定可以导致
当简单报表不适用于子报表时,此操作有效...
需知 当你觉得发现了一个Swoole内核的bug时,请提出报告。 Swoole的内核开发者们或许还不知道问题的存在, 除非你主动提出报告,否则BUG也许将很难被发现并修复, 你可以在 Github的issue区 提出错误报告(即点击右上角绿色的New issue按钮),这里的错误报告将会被最优先解决。 请不要在邮件列表或私人信件中发送错误报告,Github的issue区同样可以提出对于Swoole
错误报告 Stylus内置梦幻般的错误报告,针对语法、解析以及计算错误,完整的堆栈跟踪,行号和文件名。 解析错误 解析错误例子: body form input == padding 5px 呈现为: Error: /Users/tj/Projects/stylus/testing/test.styl:4 3: ' form input' 4: ' == padding
我试图通过一个类中的函数连接到MySql。同样的事情可以做得更容易,但这也是一次学习的经历。代码全部按预期工作,但是如果MySql查询失败,mysqli_error()返回空白,mysqli_errno()返回0。我在手动将数据输入mysql时发现了错误,并且它在db中是一个太短的列,但是我不明白为什么mysqli_error()和mysql_errno()都没有报告这个错误。提前感谢您的任何帮助