8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

TypeScript:保持月份和年份最新

Gen 3月前

92 0

我有一个日期,我想在 Typescript 中获取该日期的月份和年份。例如:如果我有 2024 年 7 月 1 日星期一,我的代码必须返回 2024 年 7 月。您能帮帮我吗?

我有一个日期,我想在 Typescript 中获取该日期的月份和年份。

例如:

如果我有 2024 年 7 月 1 日 ,我的代码必须是 return juil 2024 .

你能帮我吗?

帖子版权声明 1、本帖标题:TypeScript:保持月份和年份最新
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Gen在本站《dataframe》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我正在尝试使用 lubridate 包的 quarter() 函数创建一个表格,计算每个财政季度参与的人数。为了进行故障排除,这是

    该软件包的功能 quarter() 创建一个表格,计算每个财政季度参与的人数 lubridate

    为了进行故障排除,这是可重现的数据集(简化): https://github.com/mrkeville/assist/blob/c90eff95cd5ddbec5ab5f0f931757954293c53bf/sampledata.xlsx

    根据其文档( https://lubridate.tidyverse.org/reference/quarter.html ),该 quarter() 函数可以“获取 POSIXct、POSIXlt、Date、chron、yearmon、yearqtr、zoo、zooreg、timeDate、xts、its、ti、jul、timeSeries、fts 类的日期时间对象或任何其他可以用 as.POSIXlt 转换的对象”。我选择的日期列格式为 POSIXct ,字符检查产生以下输出:

    str(peopledata$`Date Record Created`)
     POSIXct[1:339], format: "2021-06-24" "2021-06-24" "2021-06-25" "2021-06-29" "2021-07-09" "2021-08-03" "2021-08-06" "2021-08-18" "2021-08-25" "2021-08-25" ...
    

    我运行此功能是为了将日期分组到其财政季度:

    people<-peopledata%>% 
      select(`ID Number`,`Date Record Created`)%>%
      quarter(`Date Record Created`,with_year=TRUE)
    

    当我运行该函数时,出现以下错误:

    Error in as.POSIXlt.default(x, tz = tz(x)) : 
      do not know how to convert 'x' to class “POSIXlt”
    

    然后我尝试返回源数据并 as.Date() 对该列运行转换,但结果引发了不同的错误:

    输入:

    peopledata<-read_excel("../People Activity.xlsx", sheet='People', col_names = T, col_types = NULL, na="", skip = 0)%>% 
      filter_all(any_vars(!is.na(.)))%>% 
      as.Date(`Date Record Created`, format = '%Y-%m-%d')
    

    错误:

    Error in as.Date.default(., `Date Record Created`, format = "%Y-%m-%d") : 
      do not know how to convert '.' to class “Date”
    

    我哪里做错了?

  • 我正在尝试使用 Ansible 为带有 MariaDB 的 Wordpress 创建环境,但是在尝试创建数据库和创建具有 O 权限的新用户时遇到了几乎相同的错误...

    我正在尝试使用 Ansible 为带有 MariaDB 的 Wordpress 创建环境,但是在尝试创建数据库和在 Oracle Linux (9.4) 或 Fedora (40) 上创建具有权限的新用户时遇到了几乎相同的错误。

    库存如下:

    [fedora]
    192.168.1.200 ansible_ssh_user=leo hostname=fedorasrv01 
    
    [oracle]
    192.168.1.202 ansible_ssh_user=leo hostname=oraclesrv01
    

    这是 ansible 剧本:

    - name: Install Mariadb Server - RedHat
      yum:
        name:
          - mariadb-server
          - python3-pip
        state: present
      when: (ansible_facts['os_family'] == "RedHat")
    
    - name: Install PyMySQL on RedHat
      ansible.builtin.pip:
        name: PyMySQL
        state: present
      when: (ansible_facts['os_family'] == "RedHat")
    
    - name: "Start MariaDB"
      service:
        name: mariadb
        state: started
        enabled: yes
    
    - name: Creating a database to be used by WordPress - RedHat
      mysql_db:
        name: "{{ db_wp_name }}"
        state: present
      when: (ansible_facts['os_family'] == "RedHat")
    
    - name: Create user with password, all database privileges - RedHat
      mysql_user:
        name: "{{ db_wp_username }}"
        password: "{{ db_wp_password }}"
        priv: "{{ db_wp_name }}.*:ALL,GRANT"
        state: present
      when: (ansible_facts['os_family'] == "RedHat")
    

    这些是错误:

    TASK [mysql : Creating a database to be used by WordPress - RedHat] ***************************************************************************************************************************************************************************
    fatal: [192.168.1.202]: FAILED! => {"changed": false, "msg": "unable to find /root/.my.cnf. Exception message: (1698, \"Access denied for user 'root'@'localhost'\")"}
    fatal: [192.168.1.200]: FAILED! => {"changed": false, "msg": "unable to find /root/.my.cnf. Exception message: (1045, \"Access denied for user 'root'@'localhost' (using password: NO)\")"}
    

    在寻找过程中,我尝试使用另一个 yml 来帮助,并在破坏管道的步骤之前调用它。

    - name: Stop MySQL
      service: name=mysqld state=stopped
    - name: set environment variables
      shell: systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
    - name: Start MySQL
      service: name=mysqld state=started
    - name: sql query
      command:  mysql -u root --execute="UPDATE mysql.user SET authentication_string = PASSWORD('{{ mysql_root_password }}') WHERE User = 'root' AND Host = 'localhost';"
    - name: sql query flush
      command:  mysql -u root --execute="FLUSH PRIVILEGES"
    - name: Stop MySQL
      service: name=mysqld state=stopped
    - name: unset environment variables
      shell: systemctl unset-environment MYSQLD_OPTS
    - name: Start MySQL
      service: name=mysqld state=started
    

    但在此之后,现在的错误是:

    TASK [mysql : sql query] **********************************************************************************************************************************************************************************************************************
    fatal: [192.168.1.200]: FAILED! => {"changed": true, "cmd": ["mysql", "-u", "root", "--execute=UPDATE mysql.user SET authentication_string = PASSWORD('Password123') WHERE User = 'root' AND Host = 'localhost';"], "delta": "0:00:00.087770", "end": "2024-07-02 07:06:47.621171", "msg": "non-zero return code", "rc": 1, "start": "2024-07-02 07:06:47.533401", "stderr": "ERROR 1348 (HY000) at line 1: Column 'authentication_string' is not updatable", "stderr_lines": ["ERROR 1348 (HY000) at line 1: Column 'authentication_string' is not updatable"], "stdout": "", "stdout_lines": []}
    fatal: [192.168.1.202]: FAILED! => {"changed": true, "cmd": ["mysql", "-u", "root", "--execute=UPDATE mysql.user SET authentication_string = PASSWORD('Password123') WHERE User = 'root' AND Host = 'localhost';"], "delta": "0:00:00.088495", "end": "2024-07-02 07:06:47.591159", "msg": "non-zero return code", "rc": 1, "start": "2024-07-02 07:06:47.502664", "stderr": "ERROR 1348 (HY000) at line 1: Column 'authentication_string' is not updatable", "stderr_lines": ["ERROR 1348 (HY000) at line 1: Column 'authentication_string' is not updatable"], "stdout": "", "stdout_lines": []}
    

    这次尝试后,我注释了 help.yml 并再次尝试,显然数据库创建成功了,但仍然存在权限问题。现在的错误是:

    TASK [mysql : Create user with password, all database privileges - RedHat] *********************************
    fatal: [192.168.1.202]: FAILED! => {"changed": false, "msg": "(1290, 'The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement')"}
    fatal: [192.168.1.200]: FAILED! => {"changed": false, "msg": "(1290, 'The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement')"}
    

    我刚刚用 mysql 用户尝试了这篇文章中所说的内容( --skip-grant-tables 选项无法执行语句 ),结果显示此消息:

    mysql: unknown variable 'init-file=/var/lib/mysql/mysql-init'
    

    我也刚刚尝试找到套接字,但在 RedHat 系列中我没有找到它可以使用,我不知道是否需要一些配置才能做到这一点。

  • Mark 3月前 0 只看Ta
    引用 4

    [leo@oraclesrv01 ~]$ sudo cat /root/.my.cnf cat: /root/.my.cnf: 没有此文件或目录 [leo@oraclesrv01 ~]$ sudo cat ~/.my.cnf cat: /home/leo/.my.cnf: 没有此文件或目录

  • leo@fedorasrv01:~$ sudo cat /root/.my.cnf cat: /root/.my.cnf: 没有这样的文件或目录 leo@fedorasrv01:~$ sudo cat ~/.my.cnf cat: /home/leo /.my.cnf: 没有这样的文件或目录

  • 最新文档表明,只有当 ~/.my.cnf 存在时才会读取它,这似乎与“无法找到 /root/.my.cnf”相矛盾。

  • 存储凭证 /root/.my.cnf 存在小的安全风险。如果这是全新安装,那么 root@localhost 应该有一个 unix_socket 身份验证,不需要此文件。也许 ansible 模块很旧。或者 MariaDB 重点关注/测试的 会更好。

    不能被直接操作 mysql.user

    后重新设置 --skip-grant-tables

    mariadb -u root --execute="FLUSH PRIVILEGES; ALTER USER root@localhost IDENTIFIED WITH unix_socket"
    

    或者,如果您确实想要密码,请同时执行以下两项操作:

    mariadb -u root --execute="FLUSH PRIVILEGES; ALTER USER root@localhost  IDENTIFIED VIA mysql_native_password AS PASSWORD('secret') OR unix_socket "
    
  • 在第二种方法中,您的格式输入是 \'string\' (dt: string),而不是日期格式。现在我输入的日期格式是 lundi 1 juillet 2024。

  • 如果我输入的日期格式为 Date => lun 1 juil 2024 ,我希望我的代码返回字符串 => \'juil 2024\'。请问我该怎么做?

  • 您可以使用月份地图,然后使用 Date() toLocaleDateString()

    const months: { [key: string]: string } = {
      "juil.": "Jul", // map your month like this
    };
    
    function getDate(dt: string): string {
      const D = dt.split(" ");
      const day = D[1];
      const month = months[D[2]];
      const year = D[3];
      const date = new Date(`${month} ${day} ${year}`);
      const options: Intl.DateTimeFormatOptions = {
        month: "short",
        year: "numeric",
      };
      const dfr = date.toLocaleDateString("fr-FR", options);
      const [m, y] = dfr.split(" ");
      return `${m.replace(".", "")} ${y}`;
    }
    
    console.log(getDate("lun. 1 juil. 2024"));
    
    
    

    印刷

    juil 2024
    

    或者你可以使用模式来匹配它:

    function matchDate(dt: string): string {
      const match = dt.match(/(\w+)\.?\s+(\d{4})/);
      return match ? `${match[1]} ${match[2]}` : "";
    }
    
    console.log(matchDate("lun. 1 juil. 2024"));
    
    

    普林斯

    juil 2024
    
返回
作者最近主题: