【问题标题】:Convert Date into Word Format将日期转换为word格式
【发布时间】:2014-04-26 21:00:03
【问题描述】:

我不确定我会怎么做,我想将日期转换为英文单词格式, 如果日期是 1988 年 10 月 10 日,则像这样

In English- tenth October nineteen eighty eight

请帮帮我

小提琴Here

【问题讨论】:

标签: javascript jquery html css jquery-ui


【解决方案1】:

感谢About.com 上的一篇文章,我想出了一个完美解决这个问题的方法。

上述参考帮助我将日期中的数字解析为单词,同时我对其进行了一些调整以帮助我处理月份。

var stu = $("#txtStartDate").val().split('-');
var wMonths=['january','february','march','april','may','june','july','august','september','october','november','december']
var final  = toWords(stu[0]) + " " + wMonths[parseInt(stu[1])-1] + " " + toWords(stu[2])   
alert(final);

function toWords(s)
{
    // Open Fiddle for complete code
    // convert number to words
}

关注Fiddle 获取完整代码。希望这对某人有所帮助。

【讨论】:

    【解决方案2】:

    类似的东西

    var wDays = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth', '	seventh', 'eighth', 'ninth', 'tenth', 'eleventh', 'twelfth', 'thirteenth', 'fourteenth', 'fifteenth', 'sixteenth', 'seventeenth', 'eighteenth', 'nineteenth', 'twentieth', 'twenty-first', 'twenty-second', 'twenty-third', 'twenty-fourth', 'twenty-fifth', 'twenty-sixth', 'twenty-seventh', 'twenty-eighth', 'twenty-ninth', 'thirtieth', 'thirty-first']
    
    var wMonths = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
    var wNumbers = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty', 'twentyone']
    
    var date = new Date()
    var day = parseInt(date.getUTCDate()) - 1;
    var month = parseInt(date.getUTCMonth());
    var year = date.getUTCFullYear().toString();
    
    var x = year.charAt(0)
    var xx = year.charAt(1)
    var xxx = year.charAt(2)
    var xxxx = year.charAt(3)
    
    
    var a = parseInt(x + xx) - 1
    var b = parseInt(xxx) - 1
    var c = parseInt(xxxx) - 1
    console.log(wDays[day] + ' ' + wMonths[month] + ' ' + wNumbers[a] + ' ' + wNumbers[b] + ' ' + wNumbers[c])

    【讨论】:

      【解决方案3】:

      使用 Date JS 或者你也可以使用 Jquery UI 日期选择器。

      Jquery UI Date Picker

      【讨论】:

        【解决方案4】:

        您可以参考dobToWords angular 库以获取角度应用程序,它可以帮助您将日期对象转换为单词。

        例如: 对于日期 21-4-1990,它会将日期转换为单词,并将输出为“Twenty-F​​irst April 1990”

            angular.module('sampleApp',[dobToWords])
           .controller('SampleCtrl',['$scope','convertDobToWords',function($scope,convertDobToWords){
                var dateOfBirth = new Date('04/21/1990');
                var dobIntoWords = convertDobToWords.convertIntoWords(dateOfBirth);
                console.log('Date of Birth in Words : '+ dobIntoWords);
             }]);
        

        【讨论】:

          【解决方案5】:

          你可以试试这样的:

          var dateTime = new Date($("#selector").datepicker("getDate"));
          var month = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
          var date = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth', 'tenth', 'eleventh', 'twelfth', 'thirteenth', 'fourteenth', 'fifteenth', 'sixteenth', 'seventeenth', 'eighteenth', 'nineteenth', 'twentieth', 'twenty-first', 'twenty-second', 'twenty-third', 'twenty-fourth', 'twenty-fifth', 'twenty-sixth', 'twenty-seventh', 'twenty-eighth', 'twenty-ninth', 'thirtieth', 'thirty-first'];
          var strDateTime =  "Day " + date[dateTime.getDate()-1] + " of " + month[dateTime.getMonth()] + " in the year " +  toWords(dateTime.getFullYear());
          console.log(strDateTime);
          
          function toWords(s){
              var th = ['','thousand','million', 'billion','trillion'];
              var dg = ['zero','one','two','three','four', 'five','six','seven','eight','nine'];
              var tn = ['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen'];
              var tw = ['twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety'];
              s = s.toString();
              s = s.replace(/[\, ]/g,'');
              if (s != parseFloat(s)) {
                  return 'not a number';
              }
              var x = s.indexOf('.');
              if (x == -1) x = s.length;
              if (x > 15) return 'too big';
              var n = s.split('');
              var str = '';
              var sk = 0;
              for (var i=0; i < x; i++) {
                  if ((x-i)%3==2) {
                      if (n[i] == '1') {
                          str += tn[Number(n[i+1])] + ' ';
                          i++;
                          sk=1;
                      } else if (n[i]!=0) {
                          str += tw[n[i]-2] + ' ';
                          sk=1;
                      }
                  } else if (n[i]!=0) {
                      str += dg[n[i]] +' ';
                      if ((x-i)%3==0) str += 'hundred ';
                      sk=1;
                  }
                  if ((x-i)%3==1) {
                      if (sk) str += th[(x-i-1)/3] + ' ';
                      sk=0;
                  }
              }
              if (x != s.length) {
                  var y = s.length;
                  str += 'point ';
                  for (var i=x+1;    i<y; i++) str += dg[n[i]] +' ';
              }
              return str.replace(/\s+/g,' ');
          }
          

          【讨论】:

            猜你喜欢
            • 2012-05-20
            • 1970-01-01
            • 2018-02-12
            • 2016-12-02
            • 2023-03-30
            • 2011-08-13
            • 2014-02-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多