mongodb - 前端form表单数据传输,在保存和清除的数据格式的处理程序的 - 非递归
//处理时间段,将ISODate("2014-10-09T18: 37: 50.0Z") 兑换 2014-10-09 18:37:50这样的格式
//截至处理6层树形结构数据,当多维数组key,$product_date_col中的随意一个字符,那么就会被处理。
public static function processMongoGetDate($product){
foreach($product as $k1=>$v1){
if(!is_array($v1)&& !is_object($v1)){
}else{
//if(self::contentDate($k1,$product_date_col)){
if($v1->sec){
$v1 = date('Y-m-d H:i:s', $v1->sec);
}
$product[$k1] = $v1;
//}
foreach($v1 as $k2=>$v2){
if(!is_array($v2)&& !is_object($v2)){
}else{
//if(self::contentDate($k2,$product_date_col)){
if($v2->sec){
$v2 = date('Y-m-d H:i:s', $v2->sec);
}
$product[$k1][$k2] = $v2;
//}
foreach($v2 as $k3=>$v3){
if(!is_array($v3)&& !is_object($v3)){
}else{
//if(self::contentDate($k3,$product_date_col)){
if($v3->sec){
$v3 = date('Y-m-d H:i:s', $v3->sec);
}
$product[$k1][$k2][$k3] = $v3;
//}
foreach($v3 as $k4=>$v4){
if(!is_array($v4)&& !is_object($v4)){
}else{
//if(self::contentDate($k4,$product_date_col)){
if($v4->sec){
$v4 = date('Y-m-d H:i:s', $v4->sec);
}
$product[$k1][$k2][$k3][$k4] = $v4;
//}
foreach($v4 as $k5=>$v5){
if(!is_array($v5)&& !is_object($v5)){
}else{
//if(self::contentDate($k5,$product_date_col)){
if($v5->sec){
$v5 = date('Y-m-d H:i:s', $v5->sec);
}
$product[$k1][$k2][$k3][$k4][$k5] = $v5;
//}
foreach($v5 as $k6=>$v6){
if(!is_array($v6)&& !is_object($v6)){
}else{
//if(self::contentDate($k6,$product_date_col)){
if($v6->sec){
$v6 = date('Y-m-d H:i:s', $v6->sec);
}
$product[$k1][$k2][$k3][$k4][$k5][$k6] = $v6;
//}
}
}
}
}
}
}
}
}
}
}
}
}
return $product;
}
/* 作用:前端form传递过来的数据,不管保存,还是查询,都须要转化成mongo的格式
* 处理:处理的为,1.数字字符串转换成float类型。2.日期使用\MongoDate()转换成mongo格式的日期。
* 结果:此函数不过转换 字段类型。最多为6层树形结构表。
*/
public static function processMongoSetData($data,$float_array){
//?gte ?lte
$product = object_to_array($data);
$productfloat = $float_array;
foreach($product as $k1=>$v1){
if(!is_array($v1)&& !is_object($v1)){
if(in_array($k1,$productfloat)){
if(is_numeric($v1)){
$v1 = floatval($v1);
$product[$k1] = $v1;
}
}
if(is_time($v1)){
$product[$k1] = new \MongoDate(strtotime($v1));
}
}else{
foreach($v1 as $k2=>$v2){
if(!is_array($v2)&& !is_object($v2)){
if(in_array($k2,$productfloat)){
if(is_numeric($v2)){
$v2 = floatval($v2);
$product[$k1][$k2] = $v2;
}
}
if(is_time($v2)){
$product[$k1][$k2] = new \MongoDate(strtotime($v2));
}
}else{
foreach($v2 as $k3=>$v3){
if(!is_array($v3)&& !is_object($v3)){
if(in_array($k3,$productfloat)){
if(is_numeric($v3)){
$v3 = floatval($v3);
$product[$k1][$k2][$k3] = $v3;
}
}
if(is_time($v3)){
$product[$k1][$k2][$k3] = new \MongoDate(strtotime($v3));
}
}else{
foreach($v3 as $k4=>$v4){
if(!is_array($v4)&& !is_object($v4)){
if(in_array($k4,$productfloat)){
if(is_numeric($v4)){
$v4 = floatval($v4);
$product[$k1][$k2][$k3][$k4] = $v4;
}
}
if(is_time($v4)){
$product[$k1][$k2][$k3][$k4] = new \MongoDate(strtotime($v4));
}
}else{
foreach($v4 as $k5=>$v5){
if(!is_array($v5)&& !is_object($v5)){
if(in_array($k5,$productfloat)){
if(is_numeric($v5)){
$v5 = floatval($v5);
$product[$k1][$k2][$k3][$k4][$k5] = $v5;
}
}
if(is_time($v5)){
$product[$k1][$k2][$k3][$k4][$k5] = new \MongoDate(strtotime($v5));
}
}else{
foreach($v5 as $k6=>$v6){
if(!is_array($v6)&& !is_object($v6)){
if(in_array($k6,$productfloat)){
if(is_numeric($v6)){
$v6 = floatval($v6);
$product[$k1][$k2][$k3][$k4][$k5][$k6] = $v6;
}
}
if(is_time($v6)){
$product[$k1][$k2][$k3][$k4][$k5][$k6] = new \MongoDate(strtotime($v6));
}
}else{
}
}
}
}
}
}
}
}
}
}
}
}
return $product;
}
版权声明:本文博客原创文章。博客,未经同意,不得转载。
mongodb - 前端form表单数据传输,在保存和清除的数据格式的处理程序的 - 非递归的更多相关文章
- 前端-form表单与CSS
目录 form表单 表单属性 label标签 input标签 select 下拉框标签 textarea多行文本 提交 Flask 结合form表单 初探 CSS介绍以及基本选择器 基本选择器 组合选 ...
- 基于JQuery的前端form表单操作
Jquery的前端表单操作: jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前 ...
- javaWeb 中前端Form表单数据处理(手动拼json)
在前端我们会用到最多的就是form表单提交数据,在form表单中有很多都是自动将数据传到后台,然后通过实体来接受的,但是有的时候我们就是需要在前端就拿到这个Form表单的数据,这是我们就可以自己讲数据 ...
- 前端form表单与css
form表单(******) 能够获取用户输入(输入,选择,上传的文件) 并且将用户输入的内容全部发送给后端 参数 action 控制数据提交的地址 三种书写方式 1.不写 默认就是朝当前这个页面所在 ...
- 【记录】解决前端form表单回车禁止刷新页面
最近弄前端 有form表单的情况下 按回车会自动刷新当前页面. 现记录解决方案如下: 1.去掉表单 2.不要让表单中只有一个文本框(增加一个隐藏的文本框就行) 3.以上两点都不想使用,那么就还可以在表 ...
- Django 提交 form 表单(使用sqlite3保存数据)
优化 提交 form 表单,https://www.cnblogs.com/klvchen/p/10608143.html 创建数据库的字段,在 models.py 中添加 from django.d ...
- SpringMVC中前端Form表单提交后跳转不过去的问题
今天晚上打算谢谢Spring整合这个内容,写的差不多之后运行 出现了各种问题 逐一排查 首先有一个(MyEclipse10) 一: class path resource [spring-mvc.xm ...
- 关于解决form表单记录上次保存填写记录清空
传进来的是一个HTML的Table的ID. function doReset(tableId){ var tbl_content = document.getElementById(tableId); ...
- django中使用form表单,数据库保存密码出现明文
随机推荐
- 关于for循环中i=0与i=arr.length容易被忽视的bug
for循环中的这两种写法 for(var i=0,len=arr.length;i<len;i++){ } 上面这种是最为常见也是初学者经常写的 而下面这种写法,在性能上则是比上面的更好,然而我 ...
- Android学习之一:Cygwin简介
为了能够一窥Android底层的东东,还是要搭建编译Android的环境.虽有Ubuntu和Suse系统,无奈总感觉在不同的系统下切来切去很是不便.在Windows工作学习,要编译Android,就不 ...
- Delphi 拖放文件编程(覆盖WM_DROPFILES消息)
unit Unit1; interface usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ...
- 1.0.2-学习Opencv与MFC混合编程之---为播放AVI视频添加滑动条
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961642 版本1.0.2新增内容 Ø 全局变量和函数的添加: 在CVMFCview.cpp文件 ...
- [置顶] java Gui 键盘监听事件
简单写一个java Gui键盘监听事件,实现的效果就是按下键盘控制台输出你按下的键.比如:按下A控制台就输出A 效果如图: 以下把实现的效果分为几个步骤: 1.新建一个窗体类继承窗体: 2.给这个窗体 ...
- XDU 1284 寻找礼物
枚举+二分查找. A+B+C >= K ----> C >= K - A -B ----> 统计大于等于C的个数就可以. #include <cstdio&g ...
- 浅析java的浅拷贝和深拷贝
Java中任何实现了Cloneable接口的类都可以通过调用clone()方法来复制一份自身然后传给调用者.一般而言,clone()方法满足: (1) 对任何的对象x,都有x.clone( ...
- 基于visual Studio2013解决面试题之0308Fibonacci数列
题目
- eclipse3.2 汉化 汉化包下载
1.首先去www.eclipse.org下载eclipse3.2 点击下载eclipse3.2 2.再去www.eclipse.org下载它的汉化包 请使用迅雷等下载工具下载汉化包 注意不同版 ...
- 2006 ACM Northwestern European Programming Contest C题(二分求最大)
My birthday is coming up and traditionally I'm serving pie. Not just one pie, no, I have a numberN o ...