开发者社区> 问答> 正文

如何将时间组件A的值转化为农历时间赋值给日期组件B

已解决

有两个日期组件A和B,希望A的值变化时,执行函数动作(值变化动作)function onChange({ value }) ,在函数中将A的阳历日期转化为阴历日期,并赋值给B。请问这个代码怎么写?

下面是写过的代码,但是没反应:
export function didMount() {
this.utils.loadScript("https://github.com/jjonline/calendar.js").then(() => {
onChange({ value });
});
}
export function onChange({ value }) {
console.log('onChange', value);
var dateA = document.getElementById('dateField_lnsbszku').value;
var lunarDate = calendar.solar2lunar(dateA);
document.getElementById('dateField_lnsbszkv').value = lunarDate.toString();
}

展开
收起
游客as6kdbzxuw7hy 2023-10-16 20:39:38 118 1
来自:钉钉宜搭
3 条回答
写回答
取消 提交回答
  • 若回答对您有帮助,记得点下赞同哦~
    采纳回答

    您好,您可以参考这个案例: https://www.yuque.com/yida/subject/qw6e638tvxtzt140#ExqYg
    image.png

    2023-10-18 16:11:44
    赞同 2 展开评论 打赏
  • 要将时间组件A的值转化为农历时间赋值给日期组件B,可以使用以下方法:

    1. 首先,创建一个函数function_on_change,当时间组件A的值发生变化时,执行该函数。
    2. function_on_change函数中,获取时间组件A的值,并将其转换为日期对象。
    3. 使用calendar.solar2lunar()方法将日期对象转换为农历日期对象。
    4. 将农历日期对象转换为字符串,并赋值给日期组件B。

    以下是实现这个功能的代码:

    function function_on_change() {
      // 获取时间组件A的值
      var dateA = document.getElementById('dateField_lnsbszku').value;
    
      // 将日期值转换为日期对象
      var dateObj = new Date(dateA);
    
      // 将日期对象转换为农历日期对象
      var lunarDate = calendar.solar2lunar(dateObj);
    
      // 将农历日期对象转换为字符串
      var lunarDateStr = lunarDate.toString();
    
      // 将农历日期字符串赋值给日期组件B
      document.getElementById('dateField_lnsbszkv').value = lunarDateStr;
    }
    
    // 为时间组件A添加值变化事件监听器
    document.getElementById('dateField_lnsbszku').addEventListener('change', function_on_change);
    

    这样,当时间组件A的值发生变化时,function_on_change函数会被执行,将时间组件A的值转换为农历时间,并将结果赋值给日期组件B。

    2023-10-18 13:28:59
    赞同 展开评论 打赏
  • 根据您提供的信息,您有两个日期组件A和B,希望当A的值变化时,执行函数动作,并将A的阳历日期转化为阴历日期,并赋值给B。根据您提供的代码,您已经定义了didMountonChange两个函数,但是didMount函数中并没有使用到onChange函数,因此无法实现您的需求。为了解决这个问题,您可以尝试以下方法:

    1. onChange函数定义在didMount函数中,以便在组件加载完成后立即执行。
    2. onChange函数中,将A的阳历日期转化为阴历日期,并赋值给B。

    下面是修改后的代码示例:

    export function didMount() {
      this.utils.loadScript("https://github.com/jjonline/calendar.js").then(() => {
        this.onChange({ value });
      });
    }
    
    export function onChange({ value }) {
      console.log('onChange', value);
      var dateA = document.getElementById('dateField_lnsbszku').value;
      var lunarDate = calendar.solar2lunar(dateA);
      document.getElementById('dateField_lnsbszkv').value = lunarDate.toString();
    }
    
    2023-10-16 22:16:57
    赞同 展开评论 打赏
问答分类:
问答地址:
关联地址:
来源圈子
更多
收录在圈子:
+ 订阅
「宜搭」是云钉原生低代码平台(钉钉 PaaS - aPaaS),让企业应用搭建更简单! 帮助中小企业降本提效,加强组织的数字化自主权; 帮助大型企业释放个体创新力,助力组织创新涌现。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载