小编Chr*_*ris的帖子

JavaScript中几年,几个月,几天的两个日期之间的差异

我现在已经搜索了4个小时,并且没有找到解决方案来获取JavaScript中年,月和日的两个日期之间的差异,例如:2010年4月10日是3年,x个月和y天前.

有很多解决方案,但它们只提供日期或月份或年份的格式差异,或者它们不正确(意味着不处理一个月或闰年的实际天数等).这样做真的很难吗?

我看过:

在PHP中它很容易,但不幸的是我只能在该项目上使用客户端脚本.任何能够做到这一点的库或框架都可以.

以下是日期差异的预期输出列表:

//Expected output should be: "1 year, 5 months".
diffDate(new Date('2014-05-10'), new Date('2015-10-10'));

//Expected output should be: "1 year, 4 months, 29 days".
diffDate(new Date('2014-05-10'), new Date('2015-10-09'));

//Expected output should be: "1 year, 3 months, 30 days".
diffDate(new Date('2014-05-10'), new Date('2015-09-09'));

//Expected output should be: "9 months, 27 days".
diffDate(new Date('2014-05-10'), new Date('2015-03-09'));

//Expected output should be: "1 year, 9 months, 28 days".
diffDate(new Date('2014-05-10'), new Date('2016-03-09')); …
Run Code Online (Sandbox Code Playgroud)

javascript datediff date

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

PDO SQL状态"00000"但仍然出错?

任何人都可以解释原因

$sql->execute($params);
Run Code Online (Sandbox Code Playgroud)

返回FALSE,而

print $pdo->errorCode();
print_r($pdo->errorInfo());
Run Code Online (Sandbox Code Playgroud)

两者都归还SQLSTATE 00000,这意味着根据文件的成功?它是一个INSERT,实际上没有任何东西被插入到数据库中...所以,为什么我会从中获得成功消息SQLSTATE


如果它有帮助,这是代码......

$sql = $pdo->prepare("
        INSERT INTO user (
            username, fname, pass, salt, email,
            loc_id_home, country_id_home, region_id_home,
            cont_id_home, timestamp_reg, timestamp_upd, timestamp_lastonline, 
            online_status, gender, birthdate
            )
        VALUES (
            :username,:fname,:pass,:random_salt,:email,
            :loc_id_home,:country_id_home,:region_id_home,
            :cont_id_home,'".time()."','".time()."','".time()."',
            1,:gender,:birthdate)
        ");

$params=array(
    ':username'=>$username,
    ':fname'=>$fname,
    ':pass'=>$pass,
    ':random_salt'=>$random_salt,
    ':email'=>$email,
    ':loc_id_home'=>$loc_id_home,
    ':country_id_home'=>$country,
    ':region_id_home'=>$region,
    ':cont_id_home'=>$continent,
    ':gender'=>$gender,
    ':birthdate'=>$birthdate
);  

$sql->execute($params);

print $pdo->errorCode();
print_r($pdo->errorInfo());
Run Code Online (Sandbox Code Playgroud)

php mysql sql database pdo

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

检查连续x天 - 给定数据库中的时间戳

任何人都可以给我一个想法或暗示如何在数据库表(MySQL)中连续X天检查登录(用户ID,时间戳)的存储情况?

Stackoverflow可以做到这一点(例如像Enthusiast这样的徽章 - 如果你连续登录30天左右......).你必须使用什么功能或者如何做到这一点的想法是什么?

有点像SELECT 1 FROM login_dates WHERE ...

mysql sql database gaps-and-islands

16
推荐指数
2
解决办法
5102
查看次数

UTF-8:在数据库中正确显示,但不是在HTML中,尽管utf-8字符集

我使用MySQL 5.1并将一个大约2.7密耳行的UTF-8解码的txt文件加载到一个表中,该表本身被声明为utf8_unicode_ci,并且所有字段都被声明为utf8_unicode_ci,使用LOAD DATA INFILE...

在数据库本身,人物似乎都是正确的,一切看起来都不错.但是,当我使用php打印它们时,字符显示为???,尽管我在HTML头中使用utf-8声明:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
...
Run Code Online (Sandbox Code Playgroud)

在另一个表(使用utf-8)中,我从提交的表单中插入文本,这些字符在数据库中显得异常,但在我使用时打印出来时再次正确显示SELECT....

所以,我想知道:出了什么问题?是否UTF-8在数据库中正确显示字符或奇怪地显示字符,但SELECT再次显示它们时它们是否正常?或者问题在哪里(将文件加载到数据库中,在HTML中或其间的某个地方)?

非常感谢您的任何提示或建议!:)

html mysql utf-8 character-encoding

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

jQuery:点击禁用点击事件直到ajax调用响应

在jQuery中执行以下操作:

$('#signupbox1').on('click', '#signup1', function() {

    var str = $('#signupform').serialize();

    // make it look like a waiting button
    $('#signup1').addClass("btn_wait");
    var btn_val = $('#signup1').val();
    $('#signup1').val('');

    $.ajax({
        type: "POST",
        url: "signup_step1.php",
        data: str,
        success: function(msg) {

            //doing stuff here

        $('#signup1').removeClass("btn_wait");
        $('#signup1').val(btn_val);
        }
    });

});
Run Code Online (Sandbox Code Playgroud)

你怎么能禁用点击事件,直到你收到ajax电话的答案?因此,当您点击按钮时,由于添加了类,它不仅"转换"为等待按钮,而且点击事件也将"暂停"......这可能吗?

非常感谢你提前!

javascript jquery

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

PDO - 参数号无效

就在最近,我转而使用PHP/MySQL中的PDO并转换了几十个查询.他们中的大多数都在工作,但是这很容易就会引发异常$sql->execute()

$sql=$pdo->prepare("SELECT id FROM user WHERE username = :username LIMIT 1");
$sql->execute(array(':username',$username));
Run Code Online (Sandbox Code Playgroud)

PDOStatement :: execute()pdostatement.execute SQLSTATE [HY093]:参数号无效:绑定变量数与...中的标记数不匹配

经过研究,我发现了这个链接:https://bugs.php.net/bug.php?id = 60515

...因此尝试将查询更改为

$sql=$pdo->prepare("SELECT `id` FROM `user` WHERE `username` = :username LIMIT 1");
$sql->execute(array(':username',$username));
Run Code Online (Sandbox Code Playgroud)

但仍然有相同的结果.有人看到了什么是明显错误的,或者为什么这个查询在其他所有人都没有的时候不起作用?

非常感谢你提前!

php mysql pdo

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

在查询"SELECT 1 ..."中使用"LIMIT 1"是否有意义?

这个问题应该足够明确,但是使用它代替它有什么好处

SELECT 1 FROM table ...

SELECT 1 FROM table ... LIMIT 1

mysql sql database

9
推荐指数
1
解决办法
4442
查看次数

获得与php`str_len`相同的结果和jQuery` .val().length()`

我使用jQuery来动态计算textarea的值:

function count_chars () {
    count_chars=$('#text_textarea').val().length;
}
Run Code Online (Sandbox Code Playgroud)

...然后提交序列化表单,通过ajax将textarea的文本发送到php文件,然后验证服务器端的文本.但是,我遇到了换行符和空格问题.

当然,如果我只是从textarea获取"原样"的文本,php会将每个新行计为两个或四个字符(\n,...).所以我试着用这样的东西替换它们:

strlen(str_replace(array("\r", "\n"), ' ', $text)))
Run Code Online (Sandbox Code Playgroud)

或这个:

strlen(preg_replace('/\s+/', ' ', trim($text)))
Run Code Online (Sandbox Code Playgroud)

但是,如果我得到例如10个段落并且jQuery返回2500个字符,则php将返回2510或2490,这取决于我是用空格替换新行还是完全删除它们.所以差异是20,但只有10个新线......?

我错过了什么?我怎样才能让php返回与jQuery相同的结果?问题出在哪里,在php或jQuery中?

javascript php jquery strlen

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

(为什么)MySQL在这种情况下不能使用索引?

1 - PRIMARY用于二级索引,例如(PRIMARY,column1)上的二级索引

2 - 我知道只要一个部件用于范围扫描,mysql就无法继续使用索引的其余部分,但是:IN (...,...,...)不被认为是范围,是吗?是的,它是一个范围,但我读过mysqlperformanceblog.com,IN其行为与BETWEEN根据索引的使用不同.

谁能证实这两点?或者告诉我为什么这不可能?或者它是如何可能的?

更新:

链接:
http://www.mysqlperformanceblog.com/2006/08/10/using-union-to-implement-loose-index-scan-to-mysql/
http://www.mysqlperformanceblog.com/2006/08/ 14/MySQL的-跟帖上工会的查询优化查询,分析/发表评论页面-1 /#评论-952521

更新2:嵌套SELECT的示例:

SELECT * FROM user_d1 uo 
WHERE EXISTS (
    SELECT 1 FROM `user_d1` ui
    WHERE ui.birthdate BETWEEN '1990-05-04' AND '1991-05-04'
    AND ui.id=uo.id
)    
ORDER BY uo.timestamp_lastonline DESC
LIMIT 20
Run Code Online (Sandbox Code Playgroud)

所以,外SELECT使用timestamp_lastonline用于排序,内或者PK与所述外或连接birthdate用于过滤.

如果MySQL不能在范围扫描上使用索引并进行排序,那么还有哪些其他选项而不是此查询?

mysql database indexing

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

来自php.net手册的mail():"to"和"to-header"之间的区别

在php.net示例中mail(),使用了两个不同的地址$to和附加标题信息"To:...":

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

$subject = 'Birthday Reminders for August';

// message
$message = '<html> ... </html>';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers …
Run Code Online (Sandbox Code Playgroud)

php email html-email email-headers

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