小编Ste*_*hen的帖子

getDay()方法javascript的问题

我正试图在javascript中获取日期名称.每次我搜索功能的使用getDay(),都会解释此方法返回星期几,例如:0表示星期日,1表示星期一等.

所以2010年第1季度是周五,有人可以解释为什么我会得到1而不是5?同样的2010年第二届janauary,我得到2而不是5.

我已经尝试过一些方法来做到这一点但没有成功.

这是我的代码:

theDay = new Date(2010,01,01);  
alert(theDay.getDay());
Run Code Online (Sandbox Code Playgroud)

谢谢 !!!

javascript date object

11
推荐指数
2
解决办法
4227
查看次数

PHP单元测试:是否可以测试致命错误?

FWIW我正在使用SimpleTest 1.1alpha.

我有一个单例类,我想编写一个单元测试,通过尝试实例化类(它有一个私有构造函数)来保证该类是一个单例.

这显然会导致致命错误:

致命错误:调用私有FrontController :: __ construct()

有没有办法"捕获"致命错误并报告通过的测试?

php singleton unit-testing simpletest fatal-error

11
推荐指数
2
解决办法
6137
查看次数

$ _SERVER ['HTTP_HOST']也包含端口号= /

我不知道也许这是一个错误.

我的服务器上有2个虚拟主机.

virtualhost1.com virtualhost2.com

如果我用端口80打开virtualhost1.com(virtualhost1.com:80)

$_SERVER['HTTP_HOST']='virtualhost1.com';
Run Code Online (Sandbox Code Playgroud)

但如果我打开virtualhost2.com:80

$_SERVER['HTTP_HOST']='virtualhost2.com:80'; // NOTE: with port number
Run Code Online (Sandbox Code Playgroud)

我能知道为什么吗?

php virtual-hosts port-number superglobals

10
推荐指数
1
解决办法
1万
查看次数

将JSON编码的AJAX内容加载到jQuery UI选项卡中

我们希望在我们的Web应用程序中的所有AJAX调用都能接收JSON编码的内容.在大多数地方,这已经完成(例如在模态中)并且工作正常.

但是,当使用jQueryUI的选项卡(http://jqueryui.com/demos/tabs/)及其ajax功能时,只能返回纯文本HTML(即从下面的a标签中指定的URL).我如何让tab功能识别出每个标签的点击,它将从指定的URL接收JSON编码的数据,并加载该JSON的.content索引?

$(function() {
    $('div#myTabs').tabs();     
});

<div id="mytabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
    <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
        <li class="ui-state-default ui-corner-top"><a href="/url/one">Tab one</a></li>
        <li class="ui-state-default ui-corner-top"><a href="/url/two">Tab two</a></li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

jquery json jquery-ui jquery-ui-tabs

8
推荐指数
1
解决办法
8865
查看次数

这是过度杀伤,还是很好地利用CakePHP的HTML助手?

我刚刚重新格式化了CakePHP应用程序的默认布局.通过将几乎所有内容放在html帮助器方法中,我尽可能地消除了内联html.

这很有趣,但我想知道我从这次练习中获得了什么好处,如果有的话?

<?php
    $output = implode("\n", array(
        $html->docType(),
        $html->tag('html', implode("\n", array(
            $html->tag('head', implode("\n", array(
                $html->charset(),
                $html->tag('title', 'Title For App'),
                $html->css('css', NULL, array('media' => 'screen,print')),
                $html->css('print', NULL, array('media' => 'print')),
                $html->script(array('cufon', 'jquery','external'))
            ))),
            $html->tag('body', implode("\n", array(
                $html->tag('div', $content_for_layout, array('id' => 'wrapper')),
                $html->scriptBlock('Cufon.now();')
            )))
        )), array('xmlns' => 'http://www.w3.org/1999/xhtml'))
    ));
    echo $output;
?>
Run Code Online (Sandbox Code Playgroud)

我想至少它看起来很漂亮和紧凑,并且非常易读.在这种情况下我应该注意哪些陷阱?我应该知道任何速度问题吗?

我喜欢它 - 而我却不喜欢它.

我想我需要说服这种或那种方式.

如果你想知道,在查看源代码时,内容在html中放置了很好的换行符.

php cakephp html-helper implode

8
推荐指数
2
解决办法
2282
查看次数

JavaScript:正则表达式中的无效量词

正则表达式是动态构建的,但我将它输出到firebug:

(.{1,38})(+|$\n?)
Run Code Online (Sandbox Code Playgroud)

错误是

invalid quantifier +|$\n?)
Run Code Online (Sandbox Code Playgroud)

我不知道从哪里开始.

实际代码是:

var re = top.RegExp;
var regex = new re("(.{1," + len + "})(+|$\\n?)", "gm");
Run Code Online (Sandbox Code Playgroud)

更新: 根据Bennor McCarthy的说明,我将代码更改为:

 var regex = new re("(.{1," + len + "})(\+|\$\\n?)", "gm");
Run Code Online (Sandbox Code Playgroud)

Firebug仍然告诉我这个:

invalid quantifier +|$\n?)
[Break on this error] var regex = new re("(.{1," + len + "})(\+|\$\\n?)", "gm"); 
Run Code Online (Sandbox Code Playgroud)

另一个更新 看起来像我必须加倍削减它,这解决了问题!

最终代码

var regex = new re("(.{1," + len + "})(\\+|\\$\\n?)", "gm");
Run Code Online (Sandbox Code Playgroud)

javascript regex quantifiers

8
推荐指数
1
解决办法
2万
查看次数

除了单身人士之外,在PHP中使用静态方法有哪些令人信服的理由?

我最近回答了这个问题:

在PHP中使用静态方法有什么好理由?

当然,首先想到的是一个单身人士.除了一点点例外,其他回答者提供了相同的单例示例.但这让我思考......除了创造单身之外,我并没有真正使用静态方法或属性!

简短的搜索结合了许多关于使用静态方法的教程,几乎所有这些教程都实现了相同单例类的一些变体.

我真的很感兴趣:除了创建单例(或者只是懒惰而想要一个全局函数)之外,我们还有什么理由要创建静态方法?

有没有人有一个使用静态方法的实用例子,使用动态设计模式无法更好地完成?如果在它的上下文中有意义,那么这个例子可以是单例,但除了解决方案的单例方面之外,我还有其他原因.

php implementation static design-patterns

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

规范化这个数据库:在这种情况下理想的是什么?

我正在设计一个角色有很多项目的游戏,这些项目可以是多种类型.有一个角色表,以及按类型细分的十二个不同的可能项目表(例如武器,装甲和各种其他项目类型).

我想创建一个表来保存这些项类型的实例(基本上是一个字符的项表),每一行都有一个来自字符表的外键,以指示哪个字符拥有该项的所有权.

起初我想我会在字符的项目表中创建外键 - 十二个项目表中的每一个都有一个键.但由于每个项目只能是一个"类型",这将导致每行中有11个空字段,这似乎是错误的.

什么是更好的方法?我还没有构建数据库,所以我可以接受其他不使用十二个项目表的库存想法,但是知道这一点:管理界面将允许用户根据需要添加/删除/修改每种类型的项目.

另外,我想坚持最好的规范化实践,所以我会忽略不可避免的"谁在乎?只做有效的工作并使用无效字段."

database-design normalization

6
推荐指数
1
解决办法
484
查看次数

对这些嵌套的if/elseif语句有什么更优雅的解决方案?

我正在构建一个包含用户个人资料的用户的网站.配置文件中的许多字段都是可选的.

有很多用户生成内容的机会,因此我需要在网站的许多不同位置(评论,帖子等)显示此内容的作者.在用户的个人资料中,他能够(可选地)填写他的"名字",他的"姓氏"和"显示名称".

为了显示作者,我编写了一个帮助器方法,该方法查看这些字段的提供数组,并按此优先顺序返回用户最合适的名称:

  1. 如果用户填写display_name,则会显示.
  2. 如果用户填写first_namelast_name,但没有display_name,它会显示这两个名字
  3. 如果用户只填写first_name,则会显示first_name.
  4. 如果用户只填写last_name,则会显示last_name.
  5. 如果所有其他方法都失败,将显示用户ID,即 user123
  6. 如果没有数组键,或者参数为NULL,则名称将显示为 NULL

该方法效果很好,但很难看.必须有一种方法来替代嵌套的if/else语句来美化它.

public function nameify($names = NULL) {
    $name = '';
    if (!empty($names)) {
        if (!empty($names['display_name'])) {
            $name = $names['display_name'];
        } elseif (!empty($names['first_name'])) {
            $name = $names['first_name'];
            if (!empty($names['last_name'])) {
                $name .= ' ' . $names['last_name'];
            }
        } elseif (!empty($names['last_name'])) {
            $name = $names['last_name'];
        }

        if (empty($name) && !empty($names['id'])) {
            $name = 'user' . …
Run Code Online (Sandbox Code Playgroud)

php string user-input helper

6
推荐指数
1
解决办法
2826
查看次数

在一个按钮元素上的jQuery .attr('type','submit')在IE7中给我一个奇怪的错误

我正在解析JSON响应并通过$.ajax()此对象的值构建表单.我写的剧本很长,但这就是它正在做的事情:

  1. 动态创建:
    〜表单元素,

    字段集元素,
    〜按钮元素,~20左右的文本输入和标签元素

  2. 将输入和标签附加到字段集

  3. 将按钮附加到fieldset

  4. 将fieldset附加到表单

  5. 将表单附加到现有DOM中的元素.

一切都在所有浏览器中工作,除了IE中的一个小片段.我把它缩小到下面的代码.(doc是一个包含的变量document)

fieldset.append(
    $(doc.createElement('button'))
        .addClass('ui-button')
        .attr('type', 'submit')
        .html('Re-Rate')
        .button()
);
Run Code Online (Sandbox Code Playgroud)

这是上面的第3步.它创建一个按钮元素,添加一个类,将type属性设置为submit提供一些文本,然后将其附加到fieldset.IE失败并显示错误"对象不支持此操作"

如果我注释掉这样的.attr()行:

fieldset.append(
    $(doc.createElement('button'))
        .addClass('ui-button')
        //.attr('type', 'submit')
        .html('Re-Rate')
        .button()
);
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作.

如果您想知道,该.button()方法是jQuery UI

javascript jquery internet-explorer attributes dom

6
推荐指数
1
解决办法
4205
查看次数