js 获取当前时间格式怎么转换?

toLocaleDateString()得到的时间是yyyy年MM月dd日HH:ss:mm格式的,怎么转换成yyyy-MM-ddHH:ss:mm在js里面仅针对这个问题来说,不需要那么大量的代码即可完成方案1(适用于中国标准时间):1vardate=newDate(+newDate()+8*3600*1000).toISOString().replace(/T/g,'').replace(/.[d]{3}Z/,'')方案2(只用于题目中所述的格式转换):1vardate=newDate().toLocaleString().replace(/[年月]/g,'-').replace(/[<ahref="https://www.baidu.com/s?wd=%E6%97%A5%E4%B8%8A&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLrj6YmHIhnW6sPvRYuAwh0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_...

ant design 树形组件怎么使用

     解决后:   参考地址:https://github.com/facebook/react-native/issues/1772...

vue中数据双向绑定的实现原理

vue中最常见的属v-model这个数据双向绑定了,很好奇它是如何实现的呢?尝试着用原生的JS去实现一下。首先大致学习了解下Object.defineProperty()这个东东吧!*Object.defineProperty()*对对象的属性进行定义/修改**/letobj={x:10}//这两种方式都相对来说比较简单,直接,但是有些时候我们需要对对象的属性的修改和增加进行必要的干预//obj.y=20;//obj.x=100;//obj.x='abc';////letarr=[1,2,3];//arr.length='abc';//不可更改//console.log(arr);//console.log(obj.x);//deleteobj.x;//console.log(obj);Object.defineProperty(obj,'y',{configurable:false,//设置是否可删除false为不可删除value:100});console.log(obj);deleteobj.y;//删除console.log(obj);//设置对象某个属性值的时候,顺便设置它的...

ES5 实现 ES6 的 class以及extends

ts中是这样的classGreeter{greeting:string;constructor(message:string){this.greeting=message;}greet(){console.log("Hello,"+this.greeting)}}letgreeter=newGreeter("world")classDogextendsGreeter{bark(){console.log('Woof!Woof!');}}letdog=newDog('123')dog.bark()dog.greet()经过tsctest.ts编译成ES5的源码如下,可在对应生成的test.js中查看var__extends=(this&&this.__extends)||(function(){//(this&&this.__extends)有this且已有该函数则不执行后面的函数varextendStatics=function(d,b){//从这个函数的名字就可以看到它是实现静态的属性的继承的//静态属性就是直接绑定在构造函数这个函数对象上的属性//f...

JS apply 和 call 的实现

很早之前的一篇博客写了bind的实现,是基于apply的,感兴趣的朋友看完这篇文章可以接着看看bind的实现。apply和call主要就是传参的区别。这里就不多说了,直接看代码。//call实现Function.prototype.myCall=function(context){context.fn=thisvarargs=[...arguments].slice(1)varresult=context.fn(...args)deletecontext.fnreturnresult}实例varobj={name:'hx'}functionfoo(sex,age){console.log(sex+''+this.name+''+age);}foo.myCall(obj,'boy','25');//boyhx25   实现原理:其实就是把fn放在obj下面执行(后面得把obj.fn从obj上删除了,保持obj的孑然之身嘛!),context.fn=this,obj这个对象就不止name属性了吧,多了fn属性,就是函数foo。然后context.fn()执行的时候,由于fn是context...
代码星球 代码星球·2020-04-01

vue中的$on,$emit,$once,$off源码实现

这几种模式是基于订阅观察者模式的,维护一个事件中心,on的时候将事件按名称存在事件中心里,称之为订阅者,然后emit将对应的事件进行发布,去执行事件中心里的对应的监听器。第一步就是创建一个构造构造,维护一个事件中心eventsfunctionEventEmiter(){this.events={}}$on//event可以是事件名数组EventEmiter.prototype.on=function(event,cb){//多个事件if(eventinstanceofArray){event.forEach(fn=>this.on(fn,cb))}//单个事件if(this.events[event]){this.events[event].push(cb)}else{this.events[event]=[cb]}}$emit //cb参数:单个事件名,args参数this.emit('evt',a,b,c)EventEmiter.prototype.emit=function(event){letargs=Array.from(arguments).slice(1)...
代码星球 代码星球·2020-04-01

js bind的实现

call,apply,bind都是用来挟持对象或者说更改this指向的,但是区别还是有的,call传参是fn.call(this,1,2,3)apply传参是fn.apply(this,[1,2,3])而前两者是立即执行的,后者Bind是返回一个函数varfoo=fn.bind(this) foo()看到一个关于美团面试题是如何实现jsbindif(typeofFunction.prototype.bind==="undefined"){Function.prototype.bind=function(thisArgs){varfn=this,slice=Array.prototype.slice,args=slice.call(arguments,1);//都是为了截取参数returnfunction(){returnfn.apply(thisArgs,args.concat(slice.call(arguments)));}}}代码来自书籍《javaScript模式》其实结合上ES6可以更简洁:Function.prototype.bind1=function(thisA...
代码星球 代码星球·2020-04-01

v-for的简单实现

<!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title><styletype="text/css">li{height:30px;line-height:30px}li:not([data-key]){color:red;font-size:16px}</style></head><body><divid="example-1"><div>这是一个v-for的示范</div><div><ul><li>第一个v-for</li><liv-for="(item,index)inlist":key="id">{{item.message}}</li><li>第二个v-for</li><liv-for="(student,no)instudents":key="no">...
代码星球 代码星球·2020-04-01

JS实现Promise原理

promise是用来解决Js中的异步问题的,js中所有的异步可从callback→promise→generator+co=async+await其实所有的都是callback的变相处理,只是后者慢慢变的越来越优雅和强壮可扩展。那么如何实现promise呢?先观察一下promise的样子leta=newPromise((resolve,reject)=>{//dosomethingresolve()})无非是一个名称叫Promise的对象,然后传参一个函数(resolve,reject)=>{resolve()}promise的强大之处在于回调处理,promise.then(resolveFunticon,rejectFunction)第一个函数是resolve的回调处理函数,第二个是reject说到resovle,reject,那么还得再提一下pending,promise对象内部有以上三种状态。默认是pending状态状态的转变需要我们手动自己去调用函数resolve()或者reject()整理一下思路:newpromise的时候callback作为...
代码星球 代码星球·2020-04-01

前端起一个本地php服务器

软件:xamppNavicatPremium(自己找破解)SVN(安装注意事项详见)步骤:安装xampps,安装完成后启用Apache和MySQL(记住安装目录,不要太深)安装NavicatPremium,新建localhost连接(名称localhost,IP127.0.0.1),在localhost下新建数据库,执行技术给你的.sql文件。我使用的前端工具是webstrom,下载SVNToolBox,重启webstrom。在VersionControl里找到Subversion中勾掉打钩的选项,Apply。在webstrom中点击VCS--CheckoutfromVersionControl-----Subversion,输入存放项目的svn地址,用户名,密码,拉取项目存放到xamppshtdocs项目名。在浏览器里输入http://127.0.0.1/查看是否成功,具体项目文件访问路径,看技术的配置了。以上亲测可用,用问题可以问我。 ...

小程序里实现 watch 和 computed

小程序里的自定义组件里是有数据监听器的,可以监听对应数据的变化来执行callBack,但是页面Page里没有对应的api就显的很生硬,比如某个数据变了(如切换城市)需要重新刷页面,如果不做监听,每次都要在数据变化的地方手动去调一次函数。那么如何像vue那样在Page里实现watch和computed呢?如果这时候你脑子里能想到Obejct.defineProperty或者Proxy那么接下来就慢慢实现吧。先晒出是这样调用的,请牢记这个调用,后面会反复提到test2test3currentCity:this.$computed(this,{test2:function(){returnthis.data.currentCity.cityID+'2222222'},test3:function(){returnthis.data.currentCity.cityID+'3333333'}})this.$watch(this,{currentCity(city){console.log('回调传值',city)if(city.cityID){this.getHotSpotList()}}})...
代码星球 代码星球·2020-04-01

PHP上传文件超过文件最大限制导致无法上传成功

   最近在学习《HeadFirstPHP&MySQL》一书的第5章“使用存储在文件中的数据”,做一个文件上传的应用时,出现了错误,就是文件无法成功上传。这个问题困扰了我很久,不过还好最后终于解决了。原因是我上传的图片文件大小超过了HTML表单中MAX_FILE_SIZE选项指定的值32768Bytes即32KB导致无法上传成功。  我使用了XAMPP(Apache+MySQL+PHP+Perl)集成开发包和ZendStudio10.6作为PHPIDE开发环境,另外关于PHP调试我采用了XDebug,在ZendStudio10.6中配置Xdebug的PHP调试环境我参考了博文ZendStudio10.5与XDebug调试|ZendDebugger说明Drupal源代码(一)一文。     相应的文件上传示例PHP代码addscore.php如下:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://w...

Head First PHP &MySQL学习笔记

 最近一段时间在学习PHP,买了《HeadFirstPHP&MySQL》中文版这本书,之前买过《HeadFirst设计模式》,感觉这系列的书籍总体来说很不错。  HeadFirst系列丛书的官网为:http://www.headfirstlabs.com/ ,有大概30本书,并且提供了每本书的代码下载,可以跟着书做做练习,不会的再看看源代码示例。 另外,学习PHP的官方文档为:http://www.php.net/manual/en/ ,对应中文在线文档为:http://www.php.net/manual/zh/,另外W3Schools也不错:http://www.w3schools.com/php/。  学习MySQL的话还是参考权威的官方文档:http://dev.mysql.com/doc/   另外,学习视频我最近在看的是网易公开课里的”哈佛大学公开课-构建动态网站“,地址为:http://v.163.com/special/opencourse/buildi...

Qt5.2中使用ping命令实现Ip扫描功能

    在实现类似于FreeIPScanner2.1的Ip扫描器软件中,会用到ping命令。如果使用Qt编程实现,主要会用QThread、QProcess这两个类。关于这两个类的具体用法可以查阅Qt助手或者QT官网。   在QT中为了扫描大量的Ip,通常需要将扫描Ip的任务放在一个单独的线程来完成,这样需要子类化QThread,重写其run()方法。从QThread类派生出一个ShellProcess的子类,该类的头文件代码如下:#ifndefSHELLPROCESS_H#defineSHELLPROCESS_H#include<QThread>#include<QtCore/QStringList>//PingIP的线程子类classShellProcess:publicQThread{Q_OBJECTpublic:explicitShellProcess(QObject*parent=0);QStringListgetIpRangle();//获取需要扫描的IP列表voidsetIpRan...

简单的C++11线程池实现

线程池的C++11简单实现,源代码来自Github上作者progschj,地址为:AsimpleC++11ThreadPoolimplementation,具体博客可以参见Jakob’sDevlog,地址为:AThreadPoolwithC++11ThreadPool.h#ifndefTHREAD_POOL_H#defineTHREAD_POOL_H#include<vector>#include<queue>#include<memory>#include<thread>#include<mutex>#include<condition_variable>#include<future>#include<functional>#include<stdexcept>classThreadPool{public:ThreadPool(size_t);template<classF,class...Args>autoenqueue(F&&f,Args&am...
代码星球 代码星球·2020-04-01
首页上一页...603604605606607...下一页尾页