我想在两个日期时间字符串之间传递时间(包括毫秒)
例:
$pageTime = strtotime("2012-04-23T16:08:14.9-05:00");
$rowTime = strtotime("2012-04-23T16:08:16.1-05:00");
$timePassed = $rowTime - $pageTime;
echo $timePassed . "<br/><br/>";
Run Code Online (Sandbox Code Playgroud)
我希望看到的是"1.2",但strtotime()
忽略了字符串的毫秒部分.此外,显然microtime()
不会让你给它一个日期字符串...是否有一个替代函数来计算这个,或者我将不得不做一些字符串解析来提取秒和毫秒并减去?
请考虑以下代码:
<html>
<head></head>
<body>
<div id='test' class='blah'>
<a href='http://somesite.com/' id='someLink'>click!</a>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
所以我最近发现这创建了一个调用的javascript对象someLink
,我可以用例如获取href属性的值someLink.href
.我在最新的Chrome,FF和IE中对此进行了测试,它确实有效.
首先,这个"功能"到底有多长?我想可能有一段时间了,因为我已经知道多年来页面上html元素的ID必须是唯一的,如果你有多个元素共享相同的ID,最后一个元素会覆盖前一个元素,并且使用例如getElementById()将返回最后一个.但我从来没有真正理解为什么,但现在,把它视为"这是创造一个对象"的观点,这是有道理的.所以,只要能够使用id-name-as-javascript对象直接访问它...它有多久了?IE6时代?早些时候?
第二......我想这更像是一个讨论点而不是问题,但是... IMO这似乎不是一个非常好的"功能"......不是有一个DOM和包装器的重点功能,如getElementById()
,给一些组织,更重要的是,减少名称空间问题?我不觉得我应该担心页面上的随机html元素会覆盖我的javascript变量(最近发生的事情,这就是我发现这个"功能"的原因).有谁知道为什么会这样,它背后的逻辑是什么?
我正在尝试使用Laravel和twitter bootstrap设置基本页面.我安装了Laravel并获得了通用的"你在这里"或w/e图像,因此看起来很闪亮.对于twitter bootstrap,我在/ resources/js,/ resources/css和/ resources/img下的/ boot文件夹中添加了twitter bootstrap文件.
所以现在我正在尝试为我的视图制作一个模板,其中twitter bootstrap .css文件基本上都是在我的head标签中输出的,而bootstrap.min.js和jquery.js脚本包含在我的关闭body标签之前输出.
所以这就是我的设置:
laravel /应用程序/ routes.php文件
Route::get('/', function()
{
return View::make('hello');
});
Run Code Online (Sandbox Code Playgroud)
laravel /应用/视图/ hello.php
@extends('layouts.master')
@section('content')
<p>This is my body content.</p>
@stop
Run Code Online (Sandbox Code Playgroud)
laravel /应用/视图/布局/ master.blade.php
<html>
<head>
@section('head')
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="/resources/css/bootstrap.min.css" rel="stylesheet" media="screen">
@show
</head>
<body>
<div class="container">
@yield('content')
</div>
@section('footer_scripts')
<script src="http://code.jquery.com/jquery.js"></script>
<script src="/resources/js/bootstrap.min.js"></script>
@show
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但它的刀片模板似乎没有渲染.这是我得到的输出:
@extends('layouts.master') @section('content')
This is my body content.
@stop
Run Code Online (Sandbox Code Playgroud)
这就是它在页面上以及在视图源中的外观.没有html标签或脚本包括; 没有.我必须遗漏一些基本的东西,并且我已经尝试查看Laravel文档,但我似乎无法弄清楚我做错了什么...有人能指出我正确的方向吗?
这个:
preg_match('~foo(.*?)(bar)?~','foo bar',$m);
Run Code Online (Sandbox Code Playgroud)
给我这个:
Array
(
[0] => foo
[1] =>
)
Run Code Online (Sandbox Code Playgroud)
我对此感到困惑.我得到那个组1给我一个空字符串,因为它是一个懒惰的匹配.但不应该(bar)?
应该贪婪,从而给我捕获组2?
似乎是合理的,我认为我应该得到的是
Array
(
[0] => foo
[1] =>
[2] => bar
)
Run Code Online (Sandbox Code Playgroud)
[1]
空间在哪里.然而......这不会发生.为什么?
我知道通常我可以检查是否定义了以下常量:
defined('MY_CONSTANT')
defined('PHP_EOL')
Run Code Online (Sandbox Code Playgroud)
第一个是我自己的用户定义常量.第二个是由php创建的.两者都可以检查defined()
并返回一个boolean
值.
我的问题是..有没有办法确定它是用户定义的常量还是php创建的常量?例如,MY_CONSTANT
应返回一些等效的"用户定义",并PHP_EOL
应返回一些"php-defined"的等价物.
我正在构建这个工具来分类数据.基本上我会定期接收平面文件中的数据行,如下所示:
a:b:c:d:e
a:b:c:d:e
a:b:c:d:e
a:b:c:d:e
Run Code Online (Sandbox Code Playgroud)
我有一个类别列表来打破这些行,例如:
Original Cat1 Cat2 Cat3 Cat4 Cat5
---------------------------------------
a:b:c:d:e a b c d e
Run Code Online (Sandbox Code Playgroud)
从右边开始,已知类别名称,以及打破数据的类别数量.但这可能会随着时间而改变(例如,添加/删除的类别......类别的总数已更改).
好的,所以我并不是真的在寻找有关如何解析行或将数据导入数据库或其他内容的帮助......我知道如何做到这一切,并且已经完成了核心脚本,以处理解析值行并分成不同数量的类别.
大多数情况下,我正在寻找有关如何构建数据库来存储这些东西的建议.所以我一直在考虑它,这就是我提出的:
Table: Generated
generated_id int - unique id for each row generated
generated_timestamp datetime - timestamp of when row was generated
last_updated datetime - timestamp of when row last updated
generated_method varchar(6) - method in which row was generated (manual or auto)
original_string varchar (255) - the original string
Table: Categories
category_id int - unique id for category
category_name …
Run Code Online (Sandbox Code Playgroud) 可以说我有
var myObject = {
'myFunction' : function () {
// something here that lets me get 'myObject'
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了在这里找到的各种函数和类似this.constructor.name
但我总是得到'对象'作为返回的值.有没有办法在这种情况下获得变量的实际名称?
编辑解释为什么这样也许人们会更好地理解...我希望能够创建一个用setInterval连续调用的函数.像这样的东西:
var myObject = {
'intval' : '',
'timeout' : 500,
'start' : function () {
this.objectName = 'myObject'; // <--I want this to be dynamically popped
this.intval=window.setInterval("window['"+this.objectName+"'].myFunction()",this.timeout);
},
'stop' : function () {
window.clearInterval(this.intval);
this.intval='';
},
'myFunction' : function () {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
如果我将'myObject'硬编码到this.objectName但是我不希望它被硬编码,这可以正常工作.问题是我不想setInterval("window[this.objectName]",100) because
这样is not in the …
我有这个奇怪的问题,我无法弄清楚,所以我希望比我聪明的人能帮忙!
我有一个网站https://example.com
(没有子域名)
我有一些设置cookie的代码,例如
var value="some value";
document.cookie="myCookie="+escape(value)+"; path=/; domain=example.com";
Run Code Online (Sandbox Code Playgroud)
此代码在某些脚本标记的页面加载期间运行.当第一次加载页面时,我看到我的cookie集,并在(chrome)开发工具>应用程序>域列中,我看到它被设置为.example.com
带有一个前导点,这很好.
但随后我刷新页面,我的代码再次运行(并且有一个新值被推送到cookie; dunno,如果这很重要).我查看了应用程序选项卡,现在我看到一个"重复"条目myCookie
- 一个打开.example.com
,另一个打开example.com
(没有前导点).值是相同的.这对我来说很奇怪,我不知道为什么会这样.有没有人为什么会出现这种情况?
继续沿着这个兔子洞...我再次刷新页面和更新的myCookie
值.example.com
,但是那个example.com
没有.更奇怪!
同时,我有其他代码试图读取cookie,但显然myCookie
cookie example.com
取优先,我得到的值,而不是最新值(反映在.example.com
cookie中).
我已经尝试在.example.com
(domain=.example.com
)上明确设置cookie,但上面描述的行为仍然发生.另外,据我所知,我没有办法在javascript中明确引用cookie .example.com
- document.cookie
只显示example.com
一个(但开发工具应用程序选项卡确实显示它?所以这是在javascript中暴露?)
我无法提供该网站的链接,但我可以尝试回答任何人可能需要澄清的问题.
但我的主要问题是:任何人都可以解释这可能发生的原因,或者至少提供一些可能指向正确方向的东西吗?或者失败了,或者一些解决方法明确地从中读取.example.com
?
编辑
在这一点上,我最好的猜测是网站上的其他东西,可能是服务器端脚本,正在将cookie重复.example.com
到,example.com
但仅限于值的变化.但这是纯粹的猜测.我还没有找到任何客户端证明(但是......),我实际上无法访问服务器端的东西.而且无论如何这可能都在吸管.但这是我最好的工作理论ATM回到网站开发人员询问他们...
更新 - 我发现的新内容/澄清
需要明确的是/重述:我的网站上https://example.com
有没有 submdomain.
这似乎只发生在我的cookie中,其中值会更改每个页面的负载.值不变的Cookie似乎没有被推.example.com
送到example.com
.
即使与动态值的饼干,似乎只欺骗.example.com
到example.com …
我确信之前已经得到了明确的回答,我试图搜索它......也许我的搜索条件错了......
基本上我有一个对象myObject
,我有一组已定义的属性和方法.我想要做的是能够处理我尚未定义的属性和方法的调用/引用.
例如,假设我有这个:
var myObject = {
someProperty : 'foobar',
someFunction : function () { /* Do stuff */ }
}
Run Code Online (Sandbox Code Playgroud)
目前,如果有人试图打电话myObject.someOtherFunction()
,JavaScript会对此大吼大叫.我想要做的是设置一种自动处理它的方法.因此,例如,我的对象只返回false,而不是JavaScript抛出错误.这可能吗?
另一种看待它的方法是:
var myObject = {
someFunction : function () { /* Do stuff */ }
magicBucket : function () { /* Do stuff */ }
}
Run Code Online (Sandbox Code Playgroud)
如果我打电话myObject.someFunction()
,那就是定义并做某事.我想要发生的是,如果我要调用myObject.someOtherFunction()
,而不是JavaScript抛出错误,它会调用myObject.magicBucket()
.
原因是我有一个客户端在他们的网站上使用第三方库.他们想停止使用它,但完全删除它需要花费大量的时间和精力.因此,作为一个短期解决方案,他们想知道我是否可以创建一个基本上什么都不做的虚拟文件.好吧,这个库使用了几个有很多方法的对象.我可以通过一切并制作虚拟对象,但我想也许可能有一些简单的"全能"方法来做到这一点.
有些人提到检查方法是否存在,将其包装在条件或try..catch等等.嗯,这一点是我此时无法触及对方法的实际调用.由于总体目标是最终完全删除编码,因此它甚至不适用.
所以我的目标是创建一串随机字母,并且字母可以在字符串中重复。所以我想我可以聪明地这样做:
$str = implode(
array_fill(0,10,
function(){
$c='abcdefghijklmnopqrstuvwxyz';
return (string)$c{rand(0,strlen($c)-1)};
}
)
);
echo $str;
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
可捕获的致命错误:类 Closure 的对象无法转换为字符串...
这实际上是我的脚本中唯一的东西,所以不,它不是其他东西。现在,手册规定第三个参数描述array_fill
是“用于填充的值”,并且它被列为接受混合类型。现在我知道“混合”不一定等于“任何”类型,但对我来说,我应该能够使用匿名函数作为第三个参数,只要它返回一个字符串,这似乎是合理的,对吗?但显然我不能这样做..
所以,我不一定要问为什么我不能这样做;我只是问为什么我不能这样做。这很可能归结为当权者没有将其写入幕后的代码中。但我想我只是想仔细检查一下我是否“正确”执行了这段代码,因为如果 php 允许(但不允许),它“应该”工作,而不是也许我在其他地方搞砸了?