草庐IT

input-datetime

全部标签

php - 解析年份时 strtotime 和 DateTime 给出错误的年份

$year=date('Y',strtotime("2012"));var_dump($year);//returns2013这发生在一台装有php5.2的旧服务器和一台装有php5.4的新服务器上服务器使用strtotime从类似2012-01-01或2012-01或2012的字符串中获取年份我还尝试使用$dt=newDateTime('2012')然后getTimestamp返回“1374516720”,即“Mon,22Jul201318:12:00格林威治标准时间”是什么导致了这个错误?在documentation它说strtotime只接受年份我不知道该怎么办...编辑:$ye

php - 为什么 DateTime::diff 在这些日期之间返回 0 天?

考虑以下测试用例:$start=newDateTime("2011-02-25");$end=newDateTime("2011-03-25");$interval=$end->diff($start);echo"INTERVAL=".$interval->format("%d");//Shouldgivemethe//intervalindays,right?echo"START=".$start->format("Y-m-d");echo"END=".$end->format("Y-m-d");结果是:INTERVAL=0diff()似乎声称2011年2月25日和2011年3月25

PHP filter_input 验证 INT

我有这段代码:$range=array('options'=>array('min_range'=>0,'max_range'=>10));if(!$number=filter_input(INPUT_POST,'number',FILTER_VALIDATE_INT,$range)){exit('Error');}“数字”输入将从0到10的选项发送。问题是如果number=0则返回“错误”。这有什么问题吗?谢谢 最佳答案 这是因为!0为真。为什么?通过添加!您正在进行bool检查,因此您的变量得到转换。并根据manual:When

PHP DateTime::Diff "steals"一天

我想计算两天之间的日期差异。问题是当我计算天数时,计算中缺少一天(当天)。假设date1是20-12-2014,date2是21-12-2014。DateTime::Diff使用这两个日期的结果是0(我想是1,而不是零)我是不是漏掉了什么不好的东西,或者DateTime::Diff像我上面解释的那样计算日期差异?这是我正在使用的代码(我想以天为单位显示日期差异):$currentDay=newDateTime();$listDay=newDateTime($results["date"]);//frommysqldatabase(outputislike21-12-2014$inter

javascript - 使用提交 <button> 而不是 &lt;input&gt; 按钮

我想提交一个带有的表单而不是.我知道一个无法像提交一样处理表单而且我必须使用onclick方法。我尝试了很多方法,但都不行"onclick="document.action;?>.submit()">...(ActionURLoftheform)"onclick="document.iso.submit()">...(nameoftheform)"onclick="window.location.href='action;?>'">...(Actionurloftheform)有人知道答案吗? 最佳答案 您可以使用button的类似

php - filter_input(INPUT_GET, ‘my_string’, FILTER_SANITIZE_STRING); VS 正则表达式预匹配 PHP

出于经验哪个更好用filter_input(INPUT_GET,‘my_string’,FILTER_SANITIZE_STRING);或者用于清理用户输入数据的正则表达式preg_match? 最佳答案 我更喜欢filter_input而不是正则表达式-因为它更容易阅读。 关于php-filter_input(INPUT_GET,‘my_string’,FILTER_SANITIZE_STRING);VS正则表达式预匹配PHP,我们在StackOverflow上找到一个类似的问题:

php - 错误的月份(二月)- DateTime::createFromFormat

这个问题在这里已经有了答案:PHPDateTime::createFromFormatbehavoiur(2个答案)关闭去年。从字符串进行的日期转换返回第二个月(二月)的错误值:$dtformat='Y-m-01';$curDate=DateTime::createFromFormat('Y-m','1996-02');print_r($curDate);$dt=$curDate->format($dtformat);echo$dt."\n";它返回“1996-03-01”而不是“1996-02-01”。这是$currDate数组:DateTimeObject([date]=>1996

php - 单元测试包含 DateTime ("now"的函数)

我有一个类似这样的函数:publicfunctiongetSomeInfo($id){$date_start=newDateTime();$day_of_week=$date_start->format("N");$date_start=$date_start->sub(newDateInterval("P".$day_of_week."D"));$date_end=new$date_start;$date_end=$date_end->add(newDateInterval("P5D"));$date_start=$date_start->format("Y-m-d");$date_

用于重复事件的 PHP 5.3 DateTime

我有一个日历应用程序,它使用较新的PHPDateTime类。我有一种方法可以处理重复发生的事件,但它看起来有点乱七八糟,我想看看你们是否有更好的主意:我有一个从2009年11月16日(2009年11月16日)开始的重复性事件每3天发生一次该事件将无限期地重复发生假设用户查看3100年12月的日历-该事件应该像往常一样每3天重复显示一次。问题是-我如何计算那个月的那些天数?=========================================这就是我的基本做法,但我知道我遗漏了一些更简单的东西:我计算所查看月份的开始日期(3100年12月1日)与事件开始日期(2009年11月

PHP 和 mySQLi : Do I still need to check user input when using prepare statements?

如果我在mySQLi中使用prepare语句,我是否仍然需要以任何方式转义或检查用户输入。例如,如果我有代码:$members=newmysqli("localhost","user","pass","members");$r_email=$_POST['r_email'];$check=$members->prepare("selectuser_idfromuserswhereemail=?");$check->bind_param('s',$r_email);$check->execute();$check->store_result();if($check->num_rows>0