前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小程序wxs中的时间格式化以及格式化时间和date时间互转

小程序wxs中的时间格式化以及格式化时间和date时间互转

作者头像
fastmock
发布于 2022-07-13 09:51:05
发布于 2022-07-13 09:51:05
5K00
代码可运行
举报
文章被收录于专栏:fastmockfastmock
运行总次数:0
代码可运行

WXS(WeiXin Script)是小程序的一套脚本语言,wxsjavascript 是不同的语言,有自己的语法,并不和 javascript 一致。其中包括了很多日常使用的javascript函数,在wxs中都是不能同样使用的。最近在做一个列表的时候,涉及到时间格式化操作。就遇到了这个问题,以前写好了的格式化工具函数直接拷贝到小程序项目的wxs文件中,函数不能正常执行。其中包括了下面的几个错误

  1. 正则表达式在字符串的replace函数中的使用方法不一样,不能直接使用var a = /[0-9]/这种方式声明使用。正确的方式为var reg = getRegExp("-", "g");
  2. 获取当前时间不能通过new Date()获取,而是通过getDate方法获取。
  3. getDate('2018/12/12')可以获取对应日期的date类型的时间。

按照上面的异同,修改过后的时间格式化函数代码为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var formatNumber = function (n) {
  n = n.toString()
  return n[1] ? n : '0' + n
}

var regYear = getRegExp("(y+)", "i");

var dateFormat = function (timestamp, format) {
  if (!format) {
    format = "yyyy-MM-dd hh:mm:ss";
  }
  timestamp = parseInt(timestamp);
  // 通过getDate()方法获取date类型的时间
  var realDate = getDate(timestamp);
  function timeFormat(num) {
    return num < 10 ? '0' + num : num;
  }
  var date = [
    ["M+", timeFormat(realDate.getMonth() + 1)],
    ["d+", timeFormat(realDate.getDate())],
    ["h+", timeFormat(realDate.getHours())],
    ["m+", timeFormat(realDate.getMinutes())],
    ["s+", timeFormat(realDate.getSeconds())],
    ["q+", Math.floor((realDate.getMonth() + 3) / 3)],
    ["S+", realDate.getMilliseconds()],
  ];
  var reg1 = regYear.exec(format);
  // console.log(reg1[0]);
  if (reg1) {

    format = format.replace(reg1[1], (realDate.getFullYear() + '').substring(4 - reg1[1].length));
  }
  for (var i = 0; i < date.length; i++) {
    var k = date[i][0];
    var v = date[i][1];
    // getRegExp初始化一个正则表达式对象
    var reg2 = getRegExp("(" + k + ")").exec(format);
    if (reg2) {
      format = format.replace(reg2[1], reg2[1].length == 1
        ? v : ("00" + v).substring(("" + v).length));
    }
  }
  return format;
}

把格式化的日期时间字符串转换成时间戳

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function parse(fmt) {
  fmt1 = fmt.substring(0, 19);
  var reg = getRegExp("-", "g");
  fmt2 = fmt1.replace(reg, '/');
  var timestamp = getDate(fmt2).getTime();
  return timestamp;
}

调用方法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getDateByDateTimeFmt(dateTimeFmt) {
  return dateFormat(parse(dateTimeFmt), 'MM月dd日');
}
getDateByDateTimeFmt('2012-12-12 13:12:12') // => 12月12日
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Android 拍照 与 相册选择图片
拍照 private static final int TAKE_PICTURE = 0; void takePhotoClick() { if (Build.VERSION.SDK_INT >= 23) { requestPermissions(new String[]{Manifest.permission.CAMERA}, REQUEST_CODE_ASK_PERMISSIONS); } else { startActivityForResult(new In
码客说
2019/10/22
1.7K0
Android 中拍照、相册选择、裁剪照片
一个多月没总结知识点了,差点连博客账号都忘了。。。好了,步入正题,在 Android 中调用摄像头拍照获取图片或者是从相册中选取图片是很常见的功能,比如某些 APP 上传头像的功能就是一个例子。 **因为 Android 7.0 的新特性规定,不同的应用之间不能再使用 file:// 类型的 Uri 共享数据了,否则会报异常,这就就是网上说的 Android 7.0 调用相机拍照崩溃的问题。官方推荐的做法是使用 FileProvider 来实现,**下面来看一下怎么实现这个 APP 中常见的功能:
指点
2019/01/18
6K0
Android 中拍照、相册选择、裁剪照片
手机打开照相机_安卓11调用第三方相机
调用 startActivityForResult(intent,TAKE_PHOTO);后会回调onActivityResult(int requestCode, int resultCode, @Nullable Intent data)
全栈程序员站长
2022/11/08
1.4K0
手机打开照相机_安卓11调用第三方相机
短视频平台搭建,相机截取图片位置
Person-Black-Smartphone-Taking-Picture_jvmIAWueK9Vw.jpeg 短视频平台搭建,相机截取图片位置的相关代码 package com.example.liany; import java.io.File; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.
yunbaokeji柯基
2020/11/25
1.2K0
短视频平台搭建,相机截取图片位置
拍照/选择相册,图片压缩旋转处理
最近做项目需要用到拍照和选择相册照片,并显示出来imageview 上,然后压缩上传到服务器中,这本是一个非常常见的功能,但对于图片的处理确实一个技术活,稍微不注意会出现oom,图片压缩也要处理的刚刚好,不能浪费用户的流量,也不能过分的压缩使图片失真,这真的不简单,好在开源中国的安卓端app以开源,本人特意从开源中国整理了这个demo,分享给大家。
方志朋
2022/11/30
8200
Android 11适配指南之系统相机拍照、打开相册
何为适配,适配就是当我们的开发环境、运行环境等发生变化的时候,程序依然能稳健运行。
yechaoa
2022/06/10
3.9K0
Android 11适配指南之系统相机拍照、打开相册
Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取
  在上一篇博客中完成了新闻详情数据的查看以及用户的注册登录,这篇文章中将对用户的信息进行增加和修改。会使用到文件读写、相机权限、自定义Dialog、相册选取和相机拍照。
晨曦_LLW
2021/12/19
1.6K0
Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取
Android 启动系统相机,相册,裁剪图片及6.0权限管理
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/53411790
程序员徐公
2018/09/18
1.4K0
Android 更换头像(拍照、相册选取)
<hr style=" border:solid; width:100px; height:1px;" color=#000000 size=1">
晨曦_LLW
2021/03/05
2.4K0
Android 更换头像(拍照、相册选取)
Android 调用系统相机 返回图片模糊的解决办法
所需权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.CAMERA" /> 默认方式(缩略图 图片模糊) 定义全局变量 private static final int CAMERA = 0; 调用 //调用相机 Intent camera = new Intent(MediaStore.ACTION_I
码客说
2019/10/22
2.1K0
Android拍照或者选取本地图片
从selectPhotoActivity中启动图册或者相机,再根据获取的uri进行裁剪,返回uri,再对这个uri执行一系列操纵。
用户1665735
2019/02/19
2.5K0
相关推荐
Android 拍照 与 相册选择图片
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档