小编bas*_*ic6的帖子

如果2月1日是星期一,PHP strtotime()"第一个星期一2月"将返回第二个星期一

我正在研究一个计算假期的PHP函数:

function holidays($country = 1, $timespan_start = 0, $timespan_end = 0)
Run Code Online (Sandbox Code Playgroud)

假日作为数组中的时间戳返回.

由于我必须计算二月的第一个星期一的日期,我试过strtotime("first monday february $year"),我发现这对2010年不起作用,因为2010年1月2日是星期一 - 我得到了2月8日.

更改日志中实际提到了此错误:在5.2.7之前的PHP 5中,请求在该工作日是该月的第一天的一个月中给定工作日的给定事件将错误地将一周添加到返回的时间戳.这已在5.2.7及更高版本中得到纠正.

但我使用的是PHP 5.3.8.为什么我遇到此错误?

php timestamp date strtotime

7
推荐指数
1
解决办法
6343
查看次数

限制JQuery UI对话框小工具的大小?

一个包含大量文本的JQuery UI Dialog小部件太大,对话框不适合窗口(用户必须滚动浏览器窗口;用户体验:"这是一个bug"):

$("#div_dialog").dialog({title: "Header"});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/w92TY/83/

将height选项设置为'auto'没有帮助,对话框仍然不适合窗口:

$("#div_dialog").dialog({title: "Header", width: 'auto', height: 'auto'});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/w92TY/84/

将初始大小设置为固定值将起作用......

$("#div_dialog").dialog({title: "Header", width: 100, height: 100});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/w92TY/85/ ...但这不是我想要的.
如果需要(基于内容),窗口小部件应该增大,但不会超出窗口.

基本上我正在寻找这样的东西('90%'不起作用,因为预计会出现像素数值):

$("#div_dialog").dialog({title: "Header", maxHeight: '90%'});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/w92TY/87/

这可能很简单,但我似乎找不到合适的选择......

javascript jquery-ui jquery-ui-dialog

5
推荐指数
1
解决办法
1949
查看次数

在反向代理(ProxyPass)后面配置Mojolicious中带有前缀的URL

我正在寻找一种可靠的方法来配置在/ app下的Apache反向代理后面运行的Mojolicious,这样url_for('/foo')实际上返回/app/foo而不仅仅是/foo(否则所有的链接都会被破坏).

文档显示了/下所有内容的反向代理示例.但这不是我需要的,因为应用程序应该在/ app下.
谈及ProxyPass / http://localhost:8080/ProxyPass /app http://localhost:8080/会造成问题,因为/app前缀会从应用程序生成的所有URL会丢失.

该文档还有一个关于重写部分,其中有一个before_dispatch钩子的示例,它将获取请求URL的第一部分并将其用作基础.这需要ProxyPass /app http://localhost:8080/app/在Apache配置中将前缀附加到ProxyPass URL(带有斜杠),这在该页面上似乎没有提及,但可能不需要("移动第一部分并从路径到基础的斜杠)路径")因为它很明显.这使得调用成为可能(http://localhost/app/page转换为http://localhost:8080/app/page'app'被钩子删除),url_for('/foo')返回'/app/foo'(http://localhost/app/foo),所以链接将是正确的(在ProxyPass规则中没有尾随斜杠,这将使得/apppage/foo).

但是,在此示例中,URL修改始终在生产模式(if app->mode eq 'production')中进行.所以直接调用后端服务器(http://localhost:8080/testpage)将不再起作用,因为所有的URL都会被破坏.

所以我想,我会检查是否X-Forwarded-For设置了标头(通过mod_proxy_http),这将始终设置为反向代理请求.并且由于Apache mod_proxy文档提到可能已经在客户端请求中设置了此标头(并且最终包含多个值),我首先将其从请求中删除 - 因为发送此标头的客户端不应该导致该URL基础修改.

Apache VirtualHost配置:

# ProxyPreserveHost: Mojo::URL::to_abs() not 127.0.0.1
ProxyPreserveHost On
<Location "/app/">
    # ProxyPass: prefix pass-thru
    ProxyPass http://localhost:3000/app/ …
Run Code Online (Sandbox Code Playgroud)

apache perl reverse-proxy url-rewriting mojolicious

5
推荐指数
1
解决办法
1749
查看次数

何时或如何在QSqlTableModel上使用fetchMore()并使用SQLite数据库为rowCount()工作?

我的类DataTable派生自QAbstractTableModel.它在内部使用QSqlTableModel对象从db表中获取数据.它表示db中每一行的记录(它执行的操作更多,但记录计数始终是db表中的行数).

使用MySql,我的DataTable :: rowCount()实现只调用QSqlTableModel上的rowCount(),这很好用.

现在使用SQLite,如果db表中有超过256行,Qt的SQLite驱动程序返回的行数为256,因此我的DataTable类也返回256 - 这是错误的.该文件告诉我打电话while (sql_model->canFetchMore()) sql_model->fetchMore();.在创建内部QSqlTableModel之后立即调用fetchMore()实际上会导致以下rowCount()调用返回正确的值.但是一旦数据库中的某些内容发生了变化(我的类将在QSqlTableModel上调用insertRow()或setData()),下一个QSqlTableModel :: rowCount()调用将再次返回256.

数据库仅由我的类修改,而我的类又使用该特定的QSqlTableModel对象(或使用我的DataTable作为模型的视图可以更新某些内容).因此,没有其他进程可以将行插入数据库.

那么我的DataTable类何时应该为rowCount()调用fetchMore()以始终返回实际的行数?
我认为我的类应该将QSqlTableModel发出的一些信号连接到一个调用fetchMore()的插槽,虽然我不确定这是否是正确/可靠的方法呢?


更新:

这里有一些代码来演示基本问题.

QSqlTableModel *model = new QSqlTableModel(0, database); //QSqlDatabase
model->setTable("tablename");
qDebug() << "0 row count" << model->rowCount(); //0 row count 0 
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
qDebug() << "1 row count" << model->rowCount(); //1 row count 256 
while (model->canFetchMore()) model->fetchMore();
qDebug() << "2 row count" << model->rowCount(); //2 row count 1520 
//... other methods ...
model->setData(model->index(0, 0), "TEST");
model->submitAll();
qDebug() << "3 row …
Run Code Online (Sandbox Code Playgroud)

sqlite qt qsqltablemodel qsqldatabase

5
推荐指数
1
解决办法
4794
查看次数

QAbstractTableModel:index()与createIndex()

在继承QAbstractTableModel时,获取给定行和列的QModelIndex的正确方法是什么(例如,提供方便的方法数据(int row,int column))?

有index()和createIndex() - 他们似乎都这样做?

例:

TableModel::data(int row, int column, int role) const
{
    return data(index(row, column), role);
}
Run Code Online (Sandbox Code Playgroud)

qt qmodelindex

4
推荐指数
1
解决办法
5293
查看次数

Javascript:alert('...') - 错误:未捕获的异常:ReferenceError:未定义alert

可能重复:
JavaScript警报在Firefox 6中无效

我经常在地址栏中执行Javascript代码(主要用于调试和测试):javascript:alert(some_function_with_interesting_return_value('blah')); 或者 - 更明显:javascript:alert('有趣的价值');

这似乎不再适用于Firefox 6:错误:未捕获的异常:ReferenceError:未定义警报

如何定义alert()是否可行?

我用Firefox 5,Epiphany,Midori和Chromium进行了双重检查 - 工作正常.

javascript firefox alert

3
推荐指数
1
解决办法
9584
查看次数