Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >moment.js反向.fromNow()

moment.js反向.fromNow()
EN

Stack Overflow用户
提问于 2013-05-25 23:35:40
回答 3查看 2.4K关注 0票数 3

所以我和moment.js一起工作。

我看到您可以使用moment().fromNow()将日期转换为人类友好的格式;

有没有办法做相反的事情呢?

例如,我想将这个--> "2周前“转换为普通的日期格式或UNIX时间戳。

我仔细查看了文档,但什么也找不到。任何方向都会有帮助,谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-25 23:54:02

根据输入字符串的复杂程度/不同程度,您可以这样做:

代码语言:javascript
运行
AI代码解释
复制
//parse out the number and the duration

var inputString = "2 weeks ago";

var myRegExp = /^(\d+)\s(\w+)\sago$/;

var results = myRegExp.exec(inputString);

var num = results[1];
var duration = results[2];

moment().subtract(duration,num).toString() //or whatever format you prefer

注意:这将适用于格式为“数字持续时间之前”的输入字符串。

希望这能有所帮助!

票数 3
EN

Stack Overflow用户

发布于 2016-04-01 14:09:05

在某些情况下,.fromNow()会返回类似于"30+ days ago“的字符串。上面的解决方案中提供的正则表达式不能正确地解析它。

下面是处理这种情况的最新正则表达式:

代码语言:javascript
运行
AI代码解释
复制
var myRegExp = /^(\d+)\+?\s(\w+)\sago$/;
票数 0
EN

Stack Overflow用户

发布于 2020-08-24 10:22:52

下面是我用来在当前moment.js语言环境中反转它的方法。我在几个地区进行了测试,它应该适用于每个地区,但可能不是。

将最后两个.toString()函数更改为.valueOf()以获取数值。

Moment现在实际上没有所有语言的周名称数据,所以如果找不到值,函数将假定字符串是周。

一些语言使用翻译函数,而不是内置的值,因此脚本也不会在这些函数上工作!如果您手动指定您的语言数据,那么它应该可以工作。

代码语言:javascript
运行
AI代码解释
复制
//test en locale
moment.locale("en");
console.log(reversefromNow("5 days ago"));
console.log(reversefromNow("in 5 days"));
//test ja locale
moment.locale("ja");
console.log(reversefromNow("5 日前"));
console.log(reversefromNow("5 日後"));

function reversefromNow(input) {
    let relativeLocale = JSON.parse(JSON.stringify(moment.localeData()._relativeTime));
    let pastfutureObject = {
        future: relativeLocale.future,
        past: relativeLocale.past
    };
    delete relativeLocale.future;
    delete relativeLocale.past;

    //detect if past or future
    let pastfuture;
    for (const [key, value] of Object.entries(pastfutureObject)) {
        if (input.indexOf(value.replace("%s", "")) != -1) {
            pastfuture = key;
        }
    }

    //detect the time unit
    let unitkey;
    for (const [key, value] of Object.entries(relativeLocale)) {
        if (input.indexOf(value.replace("%d", "")) != -1) {
            unitkey = key.charAt(0);
        }
    }

    //if its not in the data, then assume that it is a week
    if (unitkey == null) {
        unitkey = "w";
    }

    const units = {
        M: "month",
        d: "day",
        h: "hour",
        m: "minute",
        s: "second",
        w: "week",
        y: "year"
    };
    //Detect number value 
    const regex = /(\d+)/g;
    let numbervalue = input.match(regex) || [1];
    //Add if future, subtract if past
    if (pastfuture == "past") {
        return moment().subtract(numbervalue, units[unitkey]).valueOf();
    } else {
        return moment().add(numbervalue, units[unitkey]).valueOf();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16754882

复制
相关文章
Js如何删除所有子元素以及当前元素
在原生js当中,html的内容元素总是以嵌套的关系存在于网页中,因此,可以通过遍历树的方法访问网页里的每一个元素,当然也是可以删除指定的子元素的
itclanCoder
2023/02/26
8.5K0
Js如何删除所有子元素以及当前元素
vue获取当前点击元素的父元素、子元素、上级元素等
<div @click = "clickfun($event)">点击</div> methods: { clickfun(e) { // e.target 是你当前点击的元素 // e.currentTarget 是你绑定事件的元素 #获得点击元素的前一个元素 e.currentTarget.previousElementSibling.innerHTML #获得点击元素的第一个子元素 e.curre
用户1349575
2022/01/26
11.4K0
当前页面是否可见
Document.hidden属性来自于浏览器Page Visibility API。
公众号@魔术师卡颂
2020/08/26
2K0
python multiprocess 子进程和主进程同时抛出异常时子进程无法退出
在使用python的multiprocess库时,如果在主进程中的处理子进程的返回函数callback或者处理子进程的错误的函数errorbackerror中抛出异常,则子进程无法退出。 (1)errorcallback中抛出异常
锦小年
2021/12/08
3.2K0
python multiprocess 子进程和主进程同时抛出异常时子进程无法退出
小程序中点击子元素事件而不触发父元素的点击事件
在测试小程序的时候,发现了这样的一个bug,点击子元素事件d的时候触发父元素的点击事件,从而执行父级的点击事件,跳转到了父级的点击事件的页面了。
王小婷
2019/02/21
6.1K0
小程序中点击子元素事件而不触发父元素的点击事件
怎么理解 onStart可见但不可交互
这个问题看似简单,但涉及到的面还是比较多的,比如Activity生命周期的理解,进程的理解,以及View绘制的时机。
码上积木
2021/03/10
8060
shell编程-交互 脚本菜单
上面的脚本基本上是用echo打印的时间都花在写菜单,为此bash shell提供了一个命令select。
用户3599907
2020/07/17
2.4K2
一起来学matlab-matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象
本文为matlab自学笔记的一部分,之所以学习matlab是因为其真的是人工智能无论是神经网络还是智能计算中日常使用的,非常重要的软件。也许最近其带来的一些负面消息对国内各个高校和业界影响很大。但是我们作为技术人员,更是要奋发努力,拼搏上进,学好技术,才能师夷长技以制夷,为中华之崛起而读书!
演化计算与人工智能
2020/08/14
3.7K0
一起来学matlab-matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象
React技巧之检查元素是否可见
原文链接:https://bobbyhadz.com/blog/react-check-if-element-in-viewport[1]
chuckQu
2022/08/19
1.1K0
Android-SubMenu选项菜单和子菜单
简介: SubMenu:代表一个子菜单,包含1~N个MenuItem 实现效果: 具体实现方法: 主活动 MainActivity: public class MainActivity extends AppCompatActivity { //定义 “字体大小” 菜单项的标识 final int FONT_10 = 0x111; final int FONT_12 = 0x112; final int FONT_14 = 0x113; final int FON
圆号本昊
2021/09/24
1.3K0
Android-SubMenu选项菜单和子菜单
5个Tips让你的Power BI报告更吸引人
Power BI中提供了越来越多的可视化效果,您可以从Gallary获得这些可视化效果,其中一些非常复杂(它们可能可以通过“不普通”的方式帮你找到数据的关系)。但对于我们大多数“普通人” (大概是我们中的98%)来说,简单意味着更好,更容易,更清晰。因此,专注于简单性!
btharp
2021/08/31
3.6K0
玩转谷歌优化(Google Optimize)
译者:池金锐 审校:洛姿亦 本文长度为4407字,预估阅读时间8分钟。 我们今天要向大家介绍如何玩转谷歌优化。 几个月前(源文发表于2016年12月),谷歌宣布了向公众提供免费版的“谷歌优化360
iCDO互联网数据官
2018/03/05
3.9K0
玩转谷歌优化(Google Optimize)
JavaScript Matomo 跟踪客户端
您可以使用 JavaScript 跟踪客户端来跟踪任何支持 JavaScript 的应用程序:例如网站!
西里国际站
2023/08/23
1K0
Material Design — 菜单(Menus)
自上次参加完回音分享会后,我下定决心要洗心革面乖乖打基础,于是开启了这个part,争取两个月不间断更新,写完Material Design与iOS中的组件(顺便学学英语),以便今后在使用的时候完全不虚
霖酱
2018/05/17
5.9K0
selenium源码通读·2 | common/exceptions.py异常类
1 异常类基类common/exceptions.py目录定义了各种异常类;其中WebDriverException为基类;源码如下:class WebDriverException(Exception): """ Base webdriver exception. """ def __init__(self, msg=None, screen=None, stacktrace=None): self.msg = msg self.screen = scr
虫无涯
2023/02/08
1.5K0
子元素滚动,父元素不滚动
这个是为了处理在bootstrap框架中的iframe 滚动条的问题,查找到的解决方案
solate
2019/07/22
4.1K0
如何在 React 中点击显示或隐藏另一个组件?
React 是一种流行的 JavaScript 库,用于构建动态用户界面。在一个 React 应用程序中,有时需要一个按钮或链接来触发显示或隐藏一个相关的组件。这种需求可以通过使用 React 状态管理和事件处理机制来实现。
网络技术联盟站
2023/06/07
5.3K0
jQuery 双击事件(dblclick)时,不触发单击事件(click)
在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click)。即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick)时却会触发两次单击事件(click)。 先看一下点击事件的执行顺序:
飞奔去旅行
2019/06/13
5.5K0
特斯拉欲拿“中国护照”,因此可能挡蔚来的路?
如果特斯拉先拿到生产资质,那么蔚来汽车要拿到上海资质需要等特斯拉的工厂建成且达成量产目标。
镁客网
2019/01/24
3760
特斯拉欲拿“中国护照”,因此可能挡蔚来的路?
Patching:一款针对IDA Pro的交互式源码处理工具
通过对编译代码进行处理来改变现有应用程序的行为,在恶意软件分析、软件逆向工程以及更广泛的安全研究领域中,其实并不少见。而Patching是一款针对IDAPro的交互式源码处理工具,该工具能够扩展IDA Pro反汇编工具的功能,以创建一个功能更加强大的交互式源码处理工作流。
FB客服
2022/04/12
1.2K0
Patching:一款针对IDA Pro的交互式源码处理工具

相似问题

创建monad类的连续Monad包装实例

12

monad和monad函数的类约束

32

如何构造带约束的应用实例(类似于使用ContT构造Monad实例)

32

在IO monad中使用,来自其他monad的函数

10

连续Monad实例实现的清晰性

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档