小编Rol*_*and的帖子

以秒为单位获取两个日期之间的时差

我试图在几秒钟内得到两个日期之间的差异.逻辑是这样的:

  • 设定一个现在的初始日期;
  • 设置一个最终日期,这个日期将是初始日期加上未来的一些秒数(例如,假设为15)
  • 得到这两者之间的差异(秒数)

我之所以这么做是因为最后的日期/时间取决于其他一些变量而且它永远不会相同(这取决于用户做某事的速度),而且我还存储了其他事情的初始日期.

我一直在尝试这样的事情:

var _initial = new Date(),
    _initial = _initial.setDate(_initial.getDate()),
    _final = new Date(_initial);
    _final = _final.setDate(_final.getDate() + 15 / 1000 * 60);

var dif = Math.round((_final - _initial) / (1000 * 60));
Run Code Online (Sandbox Code Playgroud)

问题是我从来没有得到正确的区别.我试着分开,24 * 60这将留给我秒,但我从来没有做对.那么我的逻辑有什么不对?我可能会犯一些愚蠢的错误,因为它已经很晚了,但令我烦恼的是我无法让它工作:)

javascript date

127
推荐指数
5
解决办法
19万
查看次数

angularjs ng-style:background-image不起作用

我正试图通过使用角度将背景图像应用于div ng-style(我之前尝试过使用相同行为的自定义指令),但它似乎不起作用.

<nav
    class="navigation-grid-container"
    data-ng-class="{ bigger: isNavActive == true }"
    data-ng-controller="NavigationCtrl"
    data-ng-mouseenter="isNavActive = true; $parent.isNavActive = true"
    data-ng-mouseleave="isNavActive = false; $parent.isNavActive = false"
    data-ng-show="$parent.navInvisible == false"
    data-ng-animate="'fade'"
    ng-cloak>

    <ul class="navigation-container unstyled clearfix">
        <li
            class="navigation-item-container"
            data-ng-repeat="(key, item) in navigation"
            data-ng-class="{ small: $parent.isNavActive, big: isActive == true }"
            data-ng-mouseenter="isActive = true; isInactive= false"
            data-ng-mouseleave="isActive = false; isInactive= true">

            <div data-ng-switch on="item.id">

                <div class="navigation-item-default" data-ng-switch-when="scandinavia">
                    <a class="navigation-item-overlay" data-ng-href="{{item.id}}">
                        <div class="navigation-item-teaser">
                            <span class="navigation-item-teaser-text" data-ng-class="{ small: isScandinavia }">{{item.teaser}}</span>
                        </div>
                    </a>
                    <span class="navigation-item-background" data-ng-style="{ 'background-image': …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-directive angularjs-ng-repeat ng-style

76
推荐指数
4
解决办法
11万
查看次数

在最后一次出现角色之前删除所有内容

我正在尝试对字符串执行以下操作:

  • 找到角色的最后一次出现"/";
  • 删除那个角色之前的一切;
  • 返回字符串的遗骸;

更明确一点,假设我有以下字符串:

var string = "/Roland/index.php"; // Which is a result of window.location.pathname
Run Code Online (Sandbox Code Playgroud)

现在我需要提取的是除了实际页面之外的所有内容,如下所示:

var result = "index.php" // Which is what I need to be returned
Run Code Online (Sandbox Code Playgroud)

当然,这只是一个例子,因为显然我会有不同的页面,但同样的原则适用.

我想知道是否有人可以帮我解决问题.我尝试了下一步行动但没有成功:

var location = window.location.pathname;
var result = location.substring(location.lastIndexOf["/"]);
Run Code Online (Sandbox Code Playgroud)

javascript

63
推荐指数
3
解决办法
5万
查看次数

使用JSON.stringify()和JSON.parse()时Date()的问题

我试图用JavaScript计算两次之间的差异.这只是基本的数学,但在使用JSON.stringify()和时,我似乎遇到了一些问题JSON.parse().

如果您想知道为什么我将该JSON.stringify()功能应用于日期,那是因为我使用本地存储在客户端存储一些数据并在客户端再次登陆我的网站时使用它(它更快,而不是提出更多请求到服务器).这些数据通常会偶尔更新(我通过其他网站的API抓取数据),所以我设置了一个data_update变量,我将它与其他数据一起存储.

这样我就可以从本地存储中获取存储的数据并检查它们之间的差异data_update(这是一个日期/时间)和检查它之间的时间/日期,看它是否大于一周/天/等.

这就是我使用JSON函数的原因.我的问题是,当我从本地存储解析数据时,日期似乎与Date()对象不同.

我试图按照说法进行下一步操作:

var x = JSON.parse(JSON.stringify(new Date()));

var y = JSON.parse(this.get_local_storage_data(this.data_cache_key)); // the data object stored on local storage

var q = y.data_update; // this is the variable where the Date() was stored

console.log(Math.floor((x-q)/1000));
Run Code Online (Sandbox Code Playgroud)

以上将返回null.此外,当我想看到Math.floor(x)结果时,它会null再次返回.

那么在这种情况下我该怎么办?有没有解决这个问题?

javascript json date

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

如何在使用JavaScript时保护API密钥?

所以,我正在开发一个仅供我自己使用的小应用程序,也许是一个关于Git的开源项目.我正在使用Envato Marketplaces的API,众所周知,有些操作不需要任何密钥,但同时也有一些需要.

我首先在PHP中为Envato API做了一个很好的API包装器,但后来我决定用JavaScript进行一些实验,所以我用JavaScript开发了相同的包装器.到目前为止,我对公共操作没有任何问题,但我现在必须使用API​​密钥.

我的问题是,如果有一种方法可以保护JavaScript中的API密钥.我不能把它放在纯文本中,因为它可以被看到代码的其他人使用.那么API会保密吗?也许从XHR的JSON文本文件中获取它?

javascript api api-key

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

在firefox中输入的框大小隐藏文本

我在应用-moz-box-sizing : border-box;输入时遇到了Firefox的问题,看起来我输入的文本是隐藏或溢出的某个地方.

您可以在此处查看问题:测试(将窗口大小调整为小于980px的大小,因为它是移动版本);

那么问题可能是什么呢?因为我尝试了所有我能找到的东西,唯一有用的是删除-moz-box-sizing : border-box;属性(:

css firefox

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

来自url的角度加载模板并在div中编译

由于我是Angular JS的新手,我想知道如何加载外部模板并将其与一些数据一起编译到目标模板中div.

例如,我有这个模板:

<script type="text/ng-template">

    <img src="{{Thumb}}" />

<script>
Run Code Online (Sandbox Code Playgroud)

div所应该包含的模板:

<div data-ng-controller=" ... "></div>
Run Code Online (Sandbox Code Playgroud)

模板位于文件夹中的某个位置/templates/test.php.是否有像构建指令那样进行模板加载的构建方法,并针对某些替换密钥的数据{{Thumb}}(当然还有很多其他数据)进行编译?

编辑:如果我$routes在网站的根目录中使用并加载模板怎么办?怎么可能实现?

javascript angularjs

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

我怎么能减少圈复杂度?

每当我拿出一段我正在处理的代码时,我就得到了This function's cyclomatic complexity is too high. (7).但我对如何以这种方式重写它有点困惑,所以它的工作原理.

这将是不断抛出该消息的函数:

function () {
  var duration = +new Date() - start.time,
    isPastHalf = Number(duration) < 250 && Math.abs(delta.x) > 20 || Math.abs(delta.x) > viewport / 2,
    direction = delta.x < 0;

  if (!isScrolling) {
    if (isPastHalf) {
      if (direction) {
        this.close();
      } else {
        if (this.content.getBoundingClientRect().left > viewport / 2 && pulled === true) {
          this.close();
          return;
        }
        this.open();
      }
    } else {
      if (this.content.getBoundingClientRect().left > viewport / 2) { …
Run Code Online (Sandbox Code Playgroud)

javascript cyclomatic-complexity jshint

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

获取表单的ID?

我正在使用以下代码将事件附加到表单的提交按钮:

$('form.manage-users-form').on('click','button.special',function() {

    if ($(this).hasClass('selected')){
        console.log('This user is already special');
    } else {

        $(this).parent().find('button').removeClass('selected');
        $(this).addClass('selected');

        var user_id = $(this).closest("form[id]").val();

        console.log('This user is now special');
        console.log(user_id);
    }
    return false;
});
Run Code Online (Sandbox Code Playgroud)

你可以看到我也试图获取表单的id,但是当我检查控制台时我得到了(an empty string).为什么这样,我如何正确获取表单的ID?

jquery closest

13
推荐指数
3
解决办法
5万
查看次数

如何使用续集创建数据库

我已经阅读了所有续集的文档,但我找不到创建数据库的方法,假设我能做到这一点.

我正在运行一个rake任务:

require 'rubygems'
require 'bundler/setup'

require 'pg'
require 'sequel'

require 'yaml'
require 'erb'


namespace :db do

  task :connect do

  end


  task :create => :connect do

    puts db_config

    Sequel.connect(db_config['production']){ |db|

      db.create_table :user do
        primary_key :id

        String :name
        String :email

      end

      user = db[:user]


      user.insert(:name => 'Roland', :email => 'rolandjitsu@gmail.com')
    }

  end

  task :drop => :connect do

  end

end

def db_config
  YAML.load(ERB.new(File.read('config/database.yml')).result)
end
Run Code Online (Sandbox Code Playgroud)

但显然如果数据库不存在则不会创建数据库,所以我有点不确定我能做些什么.当我运行任务时,我得到:

PG::ConnectionBad: FATAL:  database "pulsr" does not exist
Run Code Online (Sandbox Code Playgroud)

database.yml文件:

production: &production
  adapter: postgres
  host: …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql sequel

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